walkingmask’s development log

IT系の情報などを適当に書いていきます

MENU

Visual Studio Code で Docker コンテナに Attach して Python のデバッガ起動までしてみる

久々にブログを書くのでリハビリ感で軽い記事を書いてみます。

ローカル開発環境で、Docker 上の Python Interpreter を使って Python の実行や Lint、デバッグまでしたいけど、PyCharmがいいのか Visual Studio Code (VSCode) がいいのか、みたいな話が出てて、とりあえず VSCode でやってみたのでログ。

割とサクッと Docker - Python 開発環境が構築できました。

環境

セットアップ

1. VSCode に Remote Development 拡張をインストールする

Remote - WSL が不要なので、これをインストールするべきか否かわかりませんが、とりあえずこれを入れとけ感あるので入れます。

f:id:walkingmask:20200427225701p:plain

2. Python コンテナを走らせる

適当に docker run --rm -it python:3.8 /bin/bash とします。

3. Attach する

以下の画面のようにして、Python コンテナに Attach します。

f:id:walkingmask:20200427232743p:plain

すると画面が変わります。これでもうコンテナに Attach して、VSCode からシェル操作できたりファイル操作できたり。驚くほどさっくり。

f:id:walkingmask:20200427230300p:plain

ちなみに、コンテナ上には VSCode のリモートサーバー関連のファイルとプロセスが生まれているようです。

f:id:walkingmask:20200427230530p:plain

4. コンテナ上に Python 拡張をインストールする

コンテナに Attach している方の VSCode のウィンドウの拡張機能タブで Python を探し、Install on Container をすると以下のようになります。

f:id:walkingmask:20200427231321p:plain

5. Linter をインストールする

雑にスクリプトを書いて、保存します。すると Linter をインストールするか聞かれるのでインストールします。

f:id:walkingmask:20200427232353p:plain

適当にタイポしてみると...

f:id:walkingmask:20200427232418p:plain

ちゃんと怒られました。

6. デバッガを使用する

雑にブレークポイントを貼って...

f:id:walkingmask:20200427232507p:plain

できてそうですね。

まとめ

VSCode - Docker - Pythonググると、何やらめんどくさそうな雰囲気が漂っていたのですが、実際にやってみると簡単に走っているコンテナに Attach でき、コーディングも Lint もデバッグもサクッとできました。

あとは、Docker Image を開発用のものにしたり、設定ファイルを作り込んだりすれば頼もしい開発ツールになるのではないでしょうか。

個人的には Docker ベースでシステムを開発するなら断然こっちを使っていきたいと感じました。

コンテナ単位で Python 環境を区切れるのも嬉しいですね。

ちなみに、python:3.6-alpine でも Attach して Python 実行までできましたが、Linter は gcc が入ってないためインストールできませんでした。

その辺は何事も使い分けかもしれませんね。

以上です。