Add a dev container template
A Coder administrator adds a dev container-compatible template to Coder
(Envbuilder). This allows the template to prompt for the developer for their dev
container repository's URL as a
parameter when they create their
workspace. Envbuilder clones the repo and builds a container from the
devcontainer.json
specified in the repo.
You can create template files through the Coder dashboard, CLI, or you can choose a template from the Coder registry:
To set variables such as the namespace, go to the template in your Coder dashboard and select Settings from the ⋮ (vertical ellipsis) menu:
Envbuilder Terraform provider
When using the Envbuilder Terraform provider, a previously built and cached image can be reused directly, allowing dev containers to start instantaneously.
Developers can edit the devcontainer.json
in their workspace to customize
their development environments:
# …
{
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {}
}
}
# …
Example templates
Template | Description |
---|---|
Docker dev containers | Docker provisions a development container. |
Kubernetes dev containers | Provisions a development container on the Kubernetes cluster. |
Google Compute Engine dev container | Runs a development container inside a single GCP instance. It also mounts the Docker socket from the VM inside the container to enable Docker inside the workspace. |
AWS EC2 dev container | Runs a development container inside a single EC2 instance. It also mounts the Docker socket from the VM inside the container to enable Docker inside the workspace. |
Your template can prompt the user for a repo URL with parameters:
Dev container lifecycle scripts
The onCreateCommand
, updateContentCommand
, postCreateCommand
, and
postStartCommand
lifecycle scripts are run each time the container is started.
This could be used, for example, to fetch or update project dependencies before
a user begins using the workspace.
Lifecycle scripts are managed by project developers.