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:
-
In the Coder dashboard, select Templates then Create Template.
-
Use a starter template or create a new template:
-
Starter template:
- Select Choose a starter template.
- Choose a template from the list or select Devcontainer from the sidebar to display only dev container-compatible templates.
- Select Use template, enter the details, then select Create template.
-
To create a new template, select From scratch and enter the templates details, then select Create template.
-
-
Edit the template files to fit your deployment.
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.