mirror of https://github.com/coder/coder.git
docs: describe devcontainers as deployment model (#12877)
This commit is contained in:
parent
c243210ae5
commit
7c0fac9906
|
@ -268,3 +268,54 @@ Coder on Kubernetes.
|
||||||
[Microsoft Entra ID Sign-On](https://learn.microsoft.com/en-us/entra/identity/app-proxy/)
|
[Microsoft Entra ID Sign-On](https://learn.microsoft.com/en-us/entra/identity/app-proxy/)
|
||||||
- For GCP:
|
- For GCP:
|
||||||
[Google Cloud Identity Platform](https://cloud.google.com/architecture/identity/single-sign-on)
|
[Google Cloud Identity Platform](https://cloud.google.com/architecture/identity/single-sign-on)
|
||||||
|
|
||||||
|
### Dev Container
|
||||||
|
|
||||||
|
Note: _Dev containers_ are at early stage and considered experimental at the
|
||||||
|
moment.
|
||||||
|
|
||||||
|
This architecture enhances a Coder workspace with a
|
||||||
|
[development container](https://containers.dev/) setup built using the
|
||||||
|
[envbuilder](https://github.com/coder/envbuilder) project. Workspace users have
|
||||||
|
the flexibility to extend generic, base developer environments with custom,
|
||||||
|
project-oriented [features](https://containers.dev/features) without requiring
|
||||||
|
platform administrators to push altered Docker images.
|
||||||
|
|
||||||
|
Learn more about
|
||||||
|
[Dev containers support](https://coder.com/docs/v2/latest/templates/devcontainers)
|
||||||
|
in Coder.
|
||||||
|
|
||||||
|
![Architecture Diagram](../images/architecture-devcontainers.png)
|
||||||
|
|
||||||
|
#### Components
|
||||||
|
|
||||||
|
The deployment model includes:
|
||||||
|
|
||||||
|
- _Workspace_ built using Coder template with _envbuilder_ enabled to set up the
|
||||||
|
developer environment accordingly to the dev container spec.
|
||||||
|
- _Container Registry_ for Docker images used by _envbuilder_, maintained by
|
||||||
|
Coder platform engineers or developer productivity engineers.
|
||||||
|
|
||||||
|
Since this model is strictly focused on workspace nodes, it does not affect the
|
||||||
|
setup of regional infrastructure. It can be deployed alongside other deployment
|
||||||
|
models, in multiple regions, or across various cloud platforms.
|
||||||
|
|
||||||
|
##### Workload resources
|
||||||
|
|
||||||
|
**Workspace**
|
||||||
|
|
||||||
|
- Docker and Kubernetes based templates are supported.
|
||||||
|
- The `docker_container` resource uses `ghcr.io/coder/envbuilder` as the base
|
||||||
|
image.
|
||||||
|
|
||||||
|
_Envbuilder_ checks out the base Docker image from the container registry and
|
||||||
|
installs selected features as specified in the `devcontainer.json` on top.
|
||||||
|
Eventually, it starts the container with the developer environment.
|
||||||
|
|
||||||
|
##### Workload supporting resources
|
||||||
|
|
||||||
|
**Container Registry (optional)**
|
||||||
|
|
||||||
|
- Workspace nodes need access to the Container Registry to check out images. To
|
||||||
|
shorten the provisioning time, it is recommended to deploy registry mirrors in
|
||||||
|
the same region as the workspace nodes.
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 78 KiB |
|
@ -1,17 +1,17 @@
|
||||||
# Devcontainers (alpha)
|
# Dev Containers (alpha)
|
||||||
|
|
||||||
[Devcontainers](https://containers.dev) are an open source specification for
|
[Development containers](https://containers.dev) are an open source
|
||||||
defining development environments.
|
specification for defining development environments.
|
||||||
|
|
||||||
[envbuilder](https://github.com/coder/envbuilder) is an open source project by
|
[envbuilder](https://github.com/coder/envbuilder) is an open source project by
|
||||||
Coder that runs devcontainers via Coder templates and your underlying
|
Coder that runs dev containers via Coder templates and your underlying
|
||||||
infrastructure. It can run on Docker or Kubernetes.
|
infrastructure. It can run on Docker or Kubernetes.
|
||||||
|
|
||||||
There are several benefits to adding a devcontainer-compatible template to
|
There are several benefits to adding a devcontainer-compatible template to
|
||||||
Coder:
|
Coder:
|
||||||
|
|
||||||
- Drop-in migration from Codespaces (or any existing repositories that use
|
- Drop-in migration from Codespaces (or any existing repositories that use dev
|
||||||
devcontainers)
|
containers)
|
||||||
- Easier to start projects from Coder. Just create a new workspace then pick a
|
- Easier to start projects from Coder. Just create a new workspace then pick a
|
||||||
starter devcontainer.
|
starter devcontainer.
|
||||||
- Developer teams can "bring their own image." No need for platform teams to
|
- Developer teams can "bring their own image." No need for platform teams to
|
||||||
|
@ -47,7 +47,7 @@ information.
|
||||||
|
|
||||||
## Caching
|
## Caching
|
||||||
|
|
||||||
To improve build times, devcontainers can be cached. Refer to the
|
To improve build times, dev containers can be cached. Refer to the
|
||||||
[envbuilder documentation](https://github.com/coder/envbuilder/) for more
|
[envbuilder documentation](https://github.com/coder/envbuilder/) for more
|
||||||
information.
|
information.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue