CoderでリモートDev Containerをつくる
CoderでDev Containersを作りたい。
Dev ContainerのWorkspaceを作成するTemplateはアルファ版ながら存在するが、Docker Compose-basedなDev ContainerのWorkspaceは作成できない。
このTemplateによって作成されるWorkspaceはenvbuilderコンテナである。
devcontainer.jsonを持つGitリポジトリのURL、保存先のDocker Volume等を渡してenvbuilderコンテナを作成すると、それ自身がDev Containerになる。
envbuilderコンテナ自身がDev Containerになる仕組み上、複数のコンテナから成るDocker Compose-basedなDev Containerを作成することは難しそう。
自前のDev ContainerビルダーでWorkspaceを作成させる作戦
coder-template-devcontainer-by-cliをつくっている。
mgn901/coder-template-devcontainer-by-cli
Dev Container CLI(Dev Containerのビルド・起動等のリファレンス実装で、VSCodeでも使用されている)を通してDev Containerをビルド・起動・終了するコンテナをリソースとして用意する。
今後やりたいこと
ドキュメントを書く。
バインドマウントを禁止する。
Docker outside of Dockerの場合、バインドマウントのソースディレクトリはDocker CLIを実行している環境のものではなく、Dockerデーモンを実行しているホストマシンのものになる。1人で使う分には問題ないが、複数人で使う場合にホストマシンのディレクトリが見えてしまうのはセキュリティ上よくない。
あるいはDocker in Dockerすればよい。
プライベートリポジトリもクローンできるようにする。
2025/4/9更新: Coderが公式Terraform Providerにcoder_devcontainerというResourceを公開してくれたので、coder-template-devcontainer-by-cliを書き換える予定。mgn901.icon
該当PullRequest
feat: add coder_devcontainer resource by mafredri · Pull Request #368 · coder/terraform-provider-coder · GitHub
feat(agent): add devcontainer autostart support by mafredri · Pull Request #17076 · coder/coder · GitHub
ドキュメント
Configure a template for dev containers | Coder Docs