devcontainer
開発環境をコンテナ内に閉じ込めつつ、IDEからはローカル開発と遜色ない使い勝手を提供する仕組み。
元々は Visual Studio Codeの機能だったが、2022年に仕様がオープンになった。
https://containers.dev/
メリット
ローカル環境の差異に縛られず、全員がおなじ開発コンテナで開発を行える
IDEに縛られず、任意のIDEと連携利用可能
GitHub Codespaces などのdevcontainerで動作する環境が利用可能
(JetBrains Spaceも将来的に対応予定)
Pythonやnodeなどのバージョンをプロジェクト別に決めてカプセル化できる
これまでもpyenvやanacondaなど仕組みはあったが共通仕様ではなかった
( ryeがローカルでこれを実現しようとしているがどうなるだろう・・・?)
デメリット
ローカル開発ほど気楽ではない
ローカル開発で困ってないのに一手間増える感じがする
参考
devcontainerでDocker in Docker環境を構築しCodespacesからhttps転送する
参照
公式 devcontainer.json reference
devcontainer.json 設定値のリファレンス
公式 vscode-dev-containers/containers at main · microsoft/vscode-dev-containers
設定サンプル集のGitHubリポジトリ
2021/01/01: vscodeのRemote Containers環境を真面目に構築してみる
色々試行錯誤している人の例
2020/01/17: VS CodeでDocker開発コンテナを便利に使おう - Qiita
色々試行錯誤している人の例
2022/08/31 devcontainerがオープン仕様化
https://github.com/microsoft/vscode-dev-containers
IMPORTANT NOTE: We've migrated most of the contents of this repo to the devcontainers GitHub org, as part of the work on the open Dev Container specification.
Announcement Revised process for dev container community contributions · Issue #1589 · microsoft/vscode-dev-containers · GitHub