devcontainerとは
devcontainerとはVS Codeの拡張機能の一種です。
ローカル環境を汚さず、VS Codeで扱う他の拡張機能やさまざまな設定を反映した「仮想環境」を作成でき、誰がどのデバイスで扱おうと、いつでも同じ環境を構築できる代物です。
なぜ後付けしたいのか
flask adminlteを扱う際に、作成元がすでに構築したDocker Compose環境をdevcontainerで扱いたくなったため。
環境(ディレクトリ構成)
- flaskで扱うさまざまなフォルダたち
- docker-compose.yml
- Dockerfile
.devcontainerフォルダを作成する
devcontainerの機能を扱う際にこのフォルダが参照されます。
正確にはフォルダ内に作成するdevcontainer.jsonファイルに書かれた内容によって作成される環境が決定します。
devcontainer.json
{
"dockerComposeFile": ["../docker-compose.yml", "docker-compose.yml"],
"service": "元から存在したdocker-composeに記載のあるservice名",
"workspaceFolder": "作業したいフォルダ"
}
ここで参照しているdocker-composeファイルが二つあることに気づいた方がいるかもしれません。
今回は既存のdocker-composeファイルに一切手を加えずに環境を作成しようとしているため、.devcontainer/内にもう一つのdocker-composeファイルを作成します。
docker-compose.yml
version: '3'
services:
app: ←既存のdockercompose.ymlに記載のあるservice名
command: sleep infinity
最終的な構成は以下の通りになります。
- .devcontainer
- devcontainer.json
- docker-compose.yml
- flaskで扱うさまざまなファイルたち
- docker-compose.yml
- Dockerfile
参考にさせていただいた記事