📝
VS Codeで「Dev Containers: Open Folder in Container」を実行したときの処理順序【初心者向け】
応用が全くききません!
こんにちは、
ワニかず@40歳 出戻りエンジニアです。
docker-compose.ymlがある場合に、
VS Codeで「Dev Containers: Open Folder in Container」
を実行したときの流れをまとめました。
Dockerfile単体での
VSCode+Docker+Django
の環境構築の流れは何となく理解したのですが、
docker-compose.ymlがある場合に、
どのようにファイルが読み込まれるのか
混乱してしまったので、整理してまとめました。
処理順序
フローにしました。
例
VSCodeのフォルダ構成
devcontainer.json
devcontainer.json
{
"name": "calendar_project",
"dockerComposeFile": "../docker/docker-compose.yml",
"service": "web",
"workspaceFolder": "/app",
"customizations": {
"vscode": {
"extensions": [
"ms-azuretools.vscode-docker",
"ms-python.python",
"ms-python.vscode-pylance"
]
}
}
}
docker-compose.yml
docker-compose.yml
services:
web:
build:
context: ..
dockerfile: docker/Dockerfile
ports:
- "8001:8000"
volumes:
- ../backend:/app
command: python manage.py runserver 0.0.0.0:8000
depends_on:
- db
db:
image: postgres:13
environment:
- POSTGRES_DB=calendar_db
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
volumes:
- postgres_data:/var/lib/postgresql/data/
volumes:
postgres_data:
Dockerfile
Dockerfile
FROM python:3.9
ENV PYTHONUNBUFFERED 1
ENV PYTHONDONTWRITEBYTECODE 1
RUN mkdir /static
RUN mkdir /app
WORKDIR /app
COPY backend/requirements.txt /app/
RUN pip install -r requirements.txt
処理の流れ
- VS Codeで「Dev Containers: Open Folder in Container」を実行
- 「devcontainer.json」が読み込まれる。
- 「"dockerComposeFile": "../docker/docker-compose.yml",」の設定があるので「docker-compose.yml」が読み込まれる。
- 「docker-compose.yml」の中に「dockerfile: docker/Dockerfile」の設定があるので、「Dockerfile」が読み込まれる。
Discussion