This text is also text!
必要なツールのインストール
- VSCode: 公式サイトからインストール
- Docker Desktop: 公式サイトからインストール
- VSCode拡張機能
プロジェクト構造の準備
1 2 3 4 5 6 7
| project/ ├── .devcontainer/ │ ├── devcontainer.json │ ├── Dockerfile ├── src/ │ └── main.py └── requirements.txt
|
各ファイルの作成
Dockerfileの作成
まず、Dockerfileを作成します。Docker imagesがビルドされます。
[dockerfile]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| FROM python:3.10-slim
RUN apt-get update && apt-get install -y \ curl \ git \ && rm -rf /var/lib/apt/lists/*
WORKDIR /workspace
COPY requirements.txt /workspace/ RUN pip install --no-cache-dir -r requirements.txt
|
devcontainer.jsonの作成
次に、devcontainerからdockerイメージをビルドし、Containerを起動するためdevcontainer.jsonで設定します。
マウント設定もここで設定します。
1 2 3
| "mounts": [ "source=${localWorkspaceFolder},target=/workspace,type=bind" ]
|
[devcontainer.json]1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| // .devcontainer/devcontainer.json { "name": "Python DevContainer", "build": { "dockerfile": "Dockerfile", "context": ".." }, "settings": { "python.pythonPath": "/usr/local/bin/python" }, "extensions": [ "ms-python.python", "ms-python.vscode-pylance" ], "forwardPorts": [8000], "postCreateCommand": "pip install --no-cache-dir -r requirements.txt", "remoteUser": "root", "workspaceFolder": "/workspace", "mounts": [ "source=${localWorkspaceFolder},target=/workspace,type=bind" ] }
|
launch.jsonの作成
Debuggerを使ってデバックするためlaunch.jsonを作成します。
[launch.json]1 2 3 4 5 6 7 8 9 10 11 12 13 14
| // .vscode/launch.json { "version": "0.2.0", "configurations": [ { "name": "Python: Docker Debug", "type": "python", "request": "launch", "program": "${workspaceFolder}/src/main.py", "console": "integratedTerminal", "justMyCode": true } ] }
|
その他のファイルの作成
requirements.txtの作成
[requirements.txt]1 2 3 4 5
| requests==2.31.0 # HTTPリクエストを送信するためのライブラリ numpy==1.26.0 # 数値計算ライブラリ pandas==2.1.1 # データ分析ライブラリ scipy==1.11.3 # 科学技術計算ライブラリ matplotlib==3.8.0 # グラフ描画ライブラリ
|
src/main.pyの作成
今回デバックしたいpythonファイルを作成します。
まとめ
以上、Vscode + Devcontainerのdocker containerの中でデバック環境を構築することができました。
必要なLibについて、Dockerfileやrequirements.txtを追加・修正してカスタマイズしてください。