Skip to content

feat(code-server): Expose --extensions-dir to allow for caching of extensions when using a custom install_prefix not in ~/ #204

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
michaelbrewer opened this issue Mar 22, 2024 · 0 comments · Fixed by #205

Comments

@michaelbrewer
Copy link
Contributor

michaelbrewer commented Mar 22, 2024

In a setup where /workspace is your persistent volume and ~/ is ephemeral
when i install code-server into /workspace any extensions will still be stored in ~/.local/share/code-server/extensions which is lost on restart

Example:

module "code-server" {
  source         = "registry.coder.com/modules/code-server/coder"
  version        = "1.0.10"
  agent_id       = coder_agent.main.id
  folder         = "${local.workspace_home}/${local.folder_name}"
  install_prefix = "${local.workspace_home}/.code-server"
  use_cached     = true
  order          = 2
  slug           = "coder-server"
  settings = {
    "workbench.colorTheme" : "Visual Studio Dark"
    "workbench.startupEditor" : "readme"
  }
   extensions = [
     "ms-python.python",
     "hashicorp.terraform",
     "ms-azuretools.vscode-docker"
  ]
}

A solution could be to expose an option to set the --extensions-dir flag, then all of the extensions would be persisted between restarts

module "code-server" {
  source         = "registry.coder.com/modules/code-server/coder"
  version        = "1.0.10"
  agent_id       = coder_agent.main.id
  folder         = "${local.workspace_home}/${local.folder_name}"
  install_prefix = "${local.workspace_home}/.code-server"
  extensions_dir = "${local.workspace_home}/.code-server/extensions"
  use_cached     = true
  order          = 2
  slug           = "coder-server"
  settings = {
    "workbench.colorTheme" : "Visual Studio Dark"
    "workbench.startupEditor" : "readme"
  }
   extensions = [
     "ms-python.python",
     "hashicorp.terraform",
     "ms-azuretools.vscode-docker"
  ]
}

Alternative solution

Alternative solution is to install_prefix and use_cached to make the assumption as to where
the extension_dir should be.

module "code-server" {
  source         = "registry.coder.com/modules/code-server/coder"
  version        = "1.0.10"
  agent_id       = coder_agent.main.id
  folder         = "${local.workspace_home}/${local.folder_name}"
  install_prefix = "${local.workspace_home}/.code-server"
  use_cached     = true
  order          = 2
  slug           = "coder-server"
  settings = {
    "workbench.colorTheme" : "Visual Studio Dark"
    "workbench.startupEditor" : "readme"
  }
   extensions = [
     "ms-python.python",
     "hashicorp.terraform",
     "ms-azuretools.vscode-docker"
  ]
}

More info:

@michaelbrewer michaelbrewer changed the title Feat: Feat(code-server): Expose --user-data-dir to allow for caching of extensions when using a custom install_prefix not in ~/ Mar 22, 2024
@michaelbrewer michaelbrewer changed the title Feat(code-server): Expose --user-data-dir to allow for caching of extensions when using a custom install_prefix not in ~/ Feat(code-server): Expose --extensions-dir to allow for caching of extensions when using a custom install_prefix not in ~/ Mar 22, 2024
michaelbrewer added a commit to michaelbrewer/modules that referenced this issue Mar 24, 2024
@michaelbrewer michaelbrewer changed the title Feat(code-server): Expose --extensions-dir to allow for caching of extensions when using a custom install_prefix not in ~/ feat(code-server): Expose --extensions-dir to allow for caching of extensions when using a custom install_prefix not in ~/ Apr 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant