@@ -118,6 +118,7 @@ func NewCodeServerNode(name, image, labsDir string,
118118 codeServerDataDir := fmt .Sprintf ("%s/.clab/code-server/%s/data" , homeDir , name )
119119 codeServerConfigDir := fmt .Sprintf ("%s/.clab/code-server/%s/config" , homeDir , name )
120120 codeServerExtensionsDir := fmt .Sprintf ("%s/.clab/code-server/%s/extensions" , homeDir , name )
121+ codeServerUserDataDir := fmt .Sprintf ("%s/.clab/code-server/%s/user-data" , homeDir , name )
121122
122123 // Create directories if they don't exist
123124 if err := os .MkdirAll (codeServerDataDir , 0755 ); err != nil {
@@ -129,6 +130,9 @@ func NewCodeServerNode(name, image, labsDir string,
129130 if err := os .MkdirAll (codeServerExtensionsDir , 0755 ); err != nil {
130131 return nil , fmt .Errorf ("failed to create code-server extensions directory: %w" , err )
131132 }
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+ }
132136
133137 // Check if this is first run (marker file doesn't exist)
134138 // On first run only, we'll copy pre-installed extensions
@@ -158,6 +162,7 @@ cert: false
158162 clabtypes .NewBind (codeServerDataDir , "/root/.local/share/code-server" , "" ),
159163 clabtypes .NewBind (codeServerConfigDir , "/root/.config/code-server" , "" ),
160164 clabtypes .NewBind (codeServerExtensionsDir , "/persistent-extensions" , "" ),
165+ clabtypes .NewBind (codeServerUserDataDir , "/persistent-user-data" , "" ),
161166 // clabtypes.NewBind("/etc/group", "/etc/group", "ro"),
162167 }
163168
@@ -219,10 +224,10 @@ cert: false
219224 var cmd string
220225 if isFirstRun {
221226 // 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 \" "
223228 } else {
224229 // 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 \" "
226231 }
227232
228233 nodeConfig := & clabtypes.NodeConfig {
0 commit comments