Skip to content

Commit 03175f9

Browse files
committed
persistent user data
1 parent 1b137d2 commit 03175f9

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

cmd/tools_code_server.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)