Skip to content

Commit 7c0fac9

Browse files
authored
docs: describe devcontainers as deployment model (#12877)
1 parent c243210 commit 7c0fac9

File tree

3 files changed

+58
-7
lines changed

3 files changed

+58
-7
lines changed

docs/about/architecture.md

+51
Original file line numberDiff line numberDiff line change
@@ -268,3 +268,54 @@ Coder on Kubernetes.
268268
[Microsoft Entra ID Sign-On](https://learn.microsoft.com/en-us/entra/identity/app-proxy/)
269269
- For GCP:
270270
[Google Cloud Identity Platform](https://cloud.google.com/architecture/identity/single-sign-on)
271+
272+
### Dev Container
273+
274+
Note: _Dev containers_ are at early stage and considered experimental at the
275+
moment.
276+
277+
This architecture enhances a Coder workspace with a
278+
[development container](https://containers.dev/) setup built using the
279+
[envbuilder](https://github.com/coder/envbuilder) project. Workspace users have
280+
the flexibility to extend generic, base developer environments with custom,
281+
project-oriented [features](https://containers.dev/features) without requiring
282+
platform administrators to push altered Docker images.
283+
284+
Learn more about
285+
[Dev containers support](https://coder.com/docs/v2/latest/templates/devcontainers)
286+
in Coder.
287+
288+
![Architecture Diagram](../images/architecture-devcontainers.png)
289+
290+
#### Components
291+
292+
The deployment model includes:
293+
294+
- _Workspace_ built using Coder template with _envbuilder_ enabled to set up the
295+
developer environment accordingly to the dev container spec.
296+
- _Container Registry_ for Docker images used by _envbuilder_, maintained by
297+
Coder platform engineers or developer productivity engineers.
298+
299+
Since this model is strictly focused on workspace nodes, it does not affect the
300+
setup of regional infrastructure. It can be deployed alongside other deployment
301+
models, in multiple regions, or across various cloud platforms.
302+
303+
##### Workload resources
304+
305+
**Workspace**
306+
307+
- Docker and Kubernetes based templates are supported.
308+
- The `docker_container` resource uses `ghcr.io/coder/envbuilder` as the base
309+
image.
310+
311+
_Envbuilder_ checks out the base Docker image from the container registry and
312+
installs selected features as specified in the `devcontainer.json` on top.
313+
Eventually, it starts the container with the developer environment.
314+
315+
##### Workload supporting resources
316+
317+
**Container Registry (optional)**
318+
319+
- Workspace nodes need access to the Container Registry to check out images. To
320+
shorten the provisioning time, it is recommended to deploy registry mirrors in
321+
the same region as the workspace nodes.
77.6 KB
Loading

docs/templates/devcontainers.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
# Devcontainers (alpha)
1+
# Dev Containers (alpha)
22

3-
[Devcontainers](https://containers.dev) are an open source specification for
4-
defining development environments.
3+
[Development containers](https://containers.dev) are an open source
4+
specification for defining development environments.
55

66
[envbuilder](https://github.com/coder/envbuilder) is an open source project by
7-
Coder that runs devcontainers via Coder templates and your underlying
7+
Coder that runs dev containers via Coder templates and your underlying
88
infrastructure. It can run on Docker or Kubernetes.
99

1010
There are several benefits to adding a devcontainer-compatible template to
1111
Coder:
1212

13-
- Drop-in migration from Codespaces (or any existing repositories that use
14-
devcontainers)
13+
- Drop-in migration from Codespaces (or any existing repositories that use dev
14+
containers)
1515
- Easier to start projects from Coder. Just create a new workspace then pick a
1616
starter devcontainer.
1717
- Developer teams can "bring their own image." No need for platform teams to
@@ -47,7 +47,7 @@ information.
4747

4848
## Caching
4949

50-
To improve build times, devcontainers can be cached. Refer to the
50+
To improve build times, dev containers can be cached. Refer to the
5151
[envbuilder documentation](https://github.com/coder/envbuilder/) for more
5252
information.
5353

0 commit comments

Comments
 (0)