@@ -268,3 +268,54 @@ Coder on Kubernetes.
268
268
[ Microsoft Entra ID Sign-On] ( https://learn.microsoft.com/en-us/entra/identity/app-proxy/ )
269
269
- For GCP:
270
270
[ 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.
0 commit comments