開発コンテナしたい(devcontainer
)
devcontainer
(Dev Container)はVS Codeからコンテナ環境に接続し、
ローカル環境と同じように開発できる機能です。
バックエンドにDockerを利用します。
プロジェクトごとの設定は
.devcontainer/devcontainer.json
に記述し、
開発メンバーで共有できます。
コンテナレジストリ
レジストリ名 |
提供元 |
ホスト名 |
---|---|---|
Docker Hub |
Docker |
|
GitHub Container Registry |
GitHub |
|
Microsoft Container Registry |
Microsoft |
|
コンテナレジストリの一覧を作ってみました。 この他にもAWSやGoogle Cloudがホストしているレジストリもあります。
Python環境したい
test-devcontainer-python
|-- .devcontainer/devcontainer.json
|-- requirements.txt
Python環境を構築するときのディレクトリ構造の例です。
プロジェクトのルートにパッケージの依存関係を記述したrequirements.txt
を作成します。
{
"name": "Python Dev Container",
"image": "mcr.microsoft.com/devcontainers/python:3.11",
"features": {
"ghcr.io/devcontainers/features/python:1": {}
},
"postCreateCommand": "pip install -r requirements.txt",
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance"
]
}
}
}
Python3.11環境を構築するための.devcontainer/devcontainer.json
の設定例です。
それぞれの設定キーは以下の通りです。
name
開発コンテナの名前です。VS CodeのUIで表示されます(Dockerのコンテナ名ではありません)。
image
使用するコンテナイメージです。 ここではMicrosoftのコンテナレジストリを指定していますが、 Docker Hubなど他のコンテナレジストリにあるイメージも指定できます。
features
プロジェクトに追加したい機能を指定します。
postCreateCommand
開発コンテナを作成したあとに実行するコマンドを設定します。 ここでは
pip install -r requirements.txt
しています。customizations
VS Codeの拡張機能を指定しています。 ここではPython拡張とPylance拡張を追加しています。