VSCodeでDocker上のFastAPIをデバッグしてみる(Windows11)

下記のQiitaの記事を参考にDocker上のFastAPIをVSCodeでデバッグしてみました。
https://qiita.com/N700A/items/0b57a75a1016f76c8358
その際の手順メモ&備忘です。

開発環境

下記の記事で作成したDocker上のFastAPI開発環境で、VSCodeを使ってデバッグできるようにしていきます。

Pythonをダウンロード

インストーラーをダウンロード

インストーラーを実行

Pythonのインストールをクリック。

何回かYes/Noの質問が来るので、下記の通り回答。

Pythonがインストールされたか確認

コマンドプロンプト等でPythonのバージョンを確認するコマンドを実行して、バージョンがリターンされたらインストールが完了。

python --version

Dockerコンテナの設定を修正

requirements.txtを修正

requirements.txtに下記を追記。

debugpy

docker-compose.ymlを修正

docker-compose.ymlに下記を追記

command: sh -c "python3 -m debugpy --listen 0.0.0.0:5678 -m uvicorn main:app --reload --proxy-headers --host='0.0.0.0' --port=8000"

- "5678:5678"

コンテナを再ビルド

docker compose up -d --build

VSCodeのPython系拡張機能を追加

Pythonで検索してMicrosoft発の拡張機能を片っ端からインストール。
(正直どれが必要なのかわからない・・・)

デバッグの設定

launch.jsonファイルを作成します。」をクリック→「Python Debugger」をクリック。
※事前にPythonファイルを開いた状態で行うこと。

Pythonファイル」をクリック。

launch.jsonに下記を設定。

{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "debugpy",
            "request": "attach",
            "name": "Docker (FastAPI)",
            "connect": {
                "host": "localhost",
                "port": 5678
            },
            "pathMappings": [
                {
                    "localRoot": "${workspaceFolder}/app",
                    "remoteRoot": "/app"
                }
            ]
        }
    ]
}

デバッグしてみる

左上の緑の三角ボタンをクリックしてデバッガーを起動→任意の場所にブレークポイントを設定。

プログラムが実行されたとき、ブレークポイントで止まればOK。

以上になります。
お読み頂き、ありがとうございました。