coder / envbuilder

Build development environments from a Dockerfile on Docker, Kubernetes, and OpenShift. Enable developers to modify their development environment quickly.
Apache License 2.0
123 stars 24 forks source link

Allow generating/accessing a computed `devcontainer.json` inside an envbuilder workspace #211

Open mafredri opened 3 months ago

mafredri commented 3 months ago

To fully support https://github.com/coder/envbuilder/issues/68, we need a way to access all the relevant devcontainer configuration inside a workspace.

This also ties into #128 because currently no devcontainer information is built into the final image. That means that starting a workspace from a cached image won't have any files present from devcontainer features.

There are two options:

  1. Have envbuilder store a computed devcontainer.json in a well-known location
  2. Allow envbuilder read-configuration (#210) to download features and inspect their configuration

Option 1 has merit as a simple way of informing coder modules where to look for the configuration. Stored as part of the final image, it would make the configuration immutable until the image is rebuilt.

Option 2 has merit as a drop-in replacement for @devcontainer/cli and the behavior can be tweaked by the user. However, this may not guarantee feature immutability.

Option 1 seems like the most straightforward option at this time.