@@ -118,6 +118,7 @@ func NewCodeServerNode(name, image, labsDir string,
118
118
codeServerDataDir := fmt .Sprintf ("%s/.clab/code-server/%s/data" , homeDir , name )
119
119
codeServerConfigDir := fmt .Sprintf ("%s/.clab/code-server/%s/config" , homeDir , name )
120
120
codeServerExtensionsDir := fmt .Sprintf ("%s/.clab/code-server/%s/extensions" , homeDir , name )
121
+ codeServerUserDataDir := fmt .Sprintf ("%s/.clab/code-server/%s/user-data" , homeDir , name )
121
122
122
123
// Create directories if they don't exist
123
124
if err := os .MkdirAll (codeServerDataDir , 0755 ); err != nil {
@@ -129,6 +130,9 @@ func NewCodeServerNode(name, image, labsDir string,
129
130
if err := os .MkdirAll (codeServerExtensionsDir , 0755 ); err != nil {
130
131
return nil , fmt .Errorf ("failed to create code-server extensions directory: %w" , err )
131
132
}
133
+ if err := os .MkdirAll (codeServerUserDataDir , 0755 ); err != nil {
134
+ return nil , fmt .Errorf ("failed to create code-server user-data directory: %w" , err )
135
+ }
132
136
133
137
// Check if this is first run (marker file doesn't exist)
134
138
// On first run only, we'll copy pre-installed extensions
@@ -158,6 +162,7 @@ cert: false
158
162
clabtypes .NewBind (codeServerDataDir , "/root/.local/share/code-server" , "" ),
159
163
clabtypes .NewBind (codeServerConfigDir , "/root/.config/code-server" , "" ),
160
164
clabtypes .NewBind (codeServerExtensionsDir , "/persistent-extensions" , "" ),
165
+ clabtypes .NewBind (codeServerUserDataDir , "/persistent-user-data" , "" ),
161
166
// clabtypes.NewBind("/etc/group", "/etc/group", "ro"),
162
167
}
163
168
@@ -219,10 +224,10 @@ cert: false
219
224
var cmd string
220
225
if isFirstRun {
221
226
// On first run, copy extensions then start
222
- cmd = "-c \" cp -r /extensions/* /persistent-extensions/ 2>/dev/null || true; code-server --config /root/.config/code-server/config.yaml --extensions-dir /persistent-extensions\" "
227
+ cmd = "-c \" cp -r /extensions/* /persistent-extensions/ 2>/dev/null || true; code-server --config /root/.config/code-server/config.yaml --extensions-dir /persistent-extensions --user-data-dir /persistent-user-data \" "
223
228
} else {
224
229
// On subsequent runs, just start directly
225
- cmd = "-c \" code-server --config /root/.config/code-server/config.yaml --extensions-dir /persistent-extensions\" "
230
+ cmd = "-c \" code-server --config /root/.config/code-server/config.yaml --extensions-dir /persistent-extensions --user-data-dir /persistent-user-data \" "
226
231
}
227
232
228
233
nodeConfig := & clabtypes.NodeConfig {
0 commit comments