vscode-devcon-1

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
# Dockerfile
FROM python:3.10-slim

# 必要なツールをインストール
RUN apt-get update && apt-get install -y \
curl \
git \
&& rm -rf /var/lib/apt/lists/*

# ワークスペースを設定
WORKDIR /workspace

# Python環境をセットアップ
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について、Dockerfilerequirements.txtを追加・修正してカスタマイズしてください。