Docker Machine上のコンテナを、VSCodeでデバッグする
VSCodeのRemote Deployment機能を利用して、コンテナ環境上でデバッグする方法のメモ。
環境情報
- Windows 10 Pro ビルド 18362
- VSCode 1.39.2
- Remote Deployment 0.17.0
- Docker toolbox
- Virtualbox 6.0.14r133895
- Docker Host 19.03.3
コンテナの起動
デバッグ環境となるコンテナを起動します。
pythonのイメージをpullしてきて、Desktop上にVolumeフォルダをボリュームマウントして起動しています。Docker toolboxで用意されたDocker Hostは、Windowsのユーザー領域を共有ボリュームとしてマウントしてくれているので、それを介して、コンテナ上とローカルPCのDesktop上がつながったイメージです。
> docker pull python > docker run -it --rm --name sample -v /c/Users/zunda/Desktop/volume:/mnt/volume python:latest
VSCodeでデバッグしてみる
VSCodeにRemote Deploymentをインストールします。
公式資料によると、Virutalboxはサポート外となっていますが、僕の環境では動作しました。
System requirements
・Windows: Docker Desktop 2.0+ on Windows 10 Pro/Enterprise. (Docker Toolbox is not supported.)
Remote Exploerの Containers
に起動しているコンテナが表示されるので、該当コンテナ部分で右クリック、 Connect to Container
を選択します。
新しいVSCodeが立ちあがります。コンテナ上のファイルをVSCodeで開くことができるようになっており、新しいTerminalを追加すると、Terminalでコンテナに接続できます。
PythonのExtentionを、コンテナ上に追加してあげます。
コンテナ環境で、いつもどおりにデバッグができるようになります。
ボリュームマウントしたフォルダを利用して、ファイルをローカルとやり取りすることで、デバッグがすごく簡単になります。便利ですね。