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をインストールします。

f:id:goodbyegangster:20191022165435p:plain

公式資料によると、Virutalboxはサポート外となっていますが、僕の環境では動作しました。

VS Code Remote Development

System requirements

 ・Windows: Docker Desktop 2.0+ on Windows 10 Pro/Enterprise. (Docker Toolbox is not supported.)

Remote Exploerの Containers に起動しているコンテナが表示されるので、該当コンテナ部分で右クリック、 Connect to Container を選択します。

f:id:goodbyegangster:20191022165446p:plain

新しいVSCodeが立ちあがります。コンテナ上のファイルをVSCodeで開くことができるようになっており、新しいTerminalを追加すると、Terminalでコンテナに接続できます。

f:id:goodbyegangster:20191022165701p:plain

PythonのExtentionを、コンテナ上に追加してあげます。

f:id:goodbyegangster:20191022165906p:plain

コンテナ環境で、いつもどおりにデバッグができるようになります。

f:id:goodbyegangster:20191022165931p:plain

ボリュームマウントしたフォルダを利用して、ファイルをローカルとやり取りすることで、デバッグがすごく簡単になります。便利ですね。