Windows 10でVisual Studio Codeをお使いの方を対象に
WSL2環境のDockerコンテナにリモート接続してPythonプログラムをデバッグする方法について記載します。
WSL2環境でdocker desktopを利用できるようにする方法については予め別サイトで確認して、セットアップしておいてください。
さらにVisual Studio Codeの拡張機能でRemote Developmentをインストールしてください。
Remote Developmentについては下記を参照しました。
VS Code Remote Development
ここまで準備ができたところで本題に入ります。
まず、VS Codeを立ち上げて、左下のこのマークをクリックしてださい。
そうすると上部にRemote-...がたくさん表示されると思います。
そのうちremote-containers open folder in containerを選択し、
所望のプロジェクトのフォルダを選択します。
初回起動時は、どの設定を参照してコンテナを立ち上げるかを確認されるので、例えばdocker-compose.ymlを選択します。
そうすると、その設定に従ってコンテナが立ち上がり、VS Codeはそのコンテナにリモート接続して、対象のフォルダが左ペインに表示されます。
下記を参考にしました。
Developing inside a Container
VS Code内で開かれたーターミナル(デフォルトだと右下側)に
cat /etc/*release
とかを入力してOSのバージョンを確認してみてください。
Dockerfileで指定したOSが起動していますよね (^^♪
そして、左ペインから起動したいPythonプログラムを選択します。
すると、下記のメッセージが右下に表示されますので、お勧め通りインストールします。
*Dev Container: Existing...*と出るのでクリック、さらに[再読み込みが必要です]と出るのでクリック。
あとは、先ほどのPythonプログラムを選択して、BreakPointを張って、F5でデバッグ実行して、BreakPointで止めるいったデバッグ動作が可能となります。
終了するときは、このマークを選択して、[リモート接続を終了する]を選択します。
コンテナ自体は終了しないようなので、現時点では自分でdocker-compose downとかで落とさないとダメなようです。
また、コンテナをdownさせるとVisual Studio Codeの拡張機能として、上記のPython extension for Visual Studio Codeを毎回インストールしないといけないようです。(要調査)
以上によって、大幅な開発効率の向上が見込めますし、何よりコンテナ内に入って作業ができることに安心感が得られます。