ノバセル株式会社CoreDevelopmentチームの田村です。今回はDocker Composeを用いてPyCharm上でデバック実行できるようにするためのTIPSを紹介します!
現在チーム内では、SnowflakeでPythonベースのプロシージャを作る機会があります。(Snowpark for Pythonを利用しています) その際のローカル開発環境はDockerで動かしているため、普段使っているIDEでデバッグ実行が簡単にできたらと思いやってみました!
前提
今回TIPSを紹介するにあたり使用するディレクトリの構成を共有します。
. ├── app │ └── run.py ├── dev.Dockerfile └── docker-compose-local.yml 1 directory, 3 files
また、docker-compose.ymlは以下の通りです。
version: "3" services: app: build: context: . dockerfile: dev.Dockerfile container_name: app tty: true command: bash volumes: - ./app:/app
※ 今回は簡略化のため立ち上げるコンテナを1つにしています。
具体的な方法
1.PyCharmのPreferences...を選択
2.Python Interpreterの選択
3.Docker Composeの“選択
4.環境を設定をする
各設定の説明は以下の通りです。
- Server...実行するDocker環境の設定(既存のものがない場合はCreate new...を選択)
- Configuration files...読み込ませたいdocker-compose.ymlファイルを指定
- Service...実際に開発するコンテナのサービス名
- Environment Variable...追加の環境変数の設定(docker-compose側に既にenvを指定している場合は不要)
終わったらNextを押しましょう。
5.System Interpreterを選択してCreateする
6.設定されていることを確認
Dockerのイメージ内で指定したバージョンがインタプリタに設定されていれば準備完了です!(こちらの環境の場合は3.8系をイメージに指定しています)
実際に試してみる
デバックしたい箇所に対してブレークポイントを指定します。
Debugを選択し実行します。
Debuggerを開くとスタックトレースが確認できます!
Consoleを開くと変数の操作もできます!
注意
docker-compose.ymlのサービス名を途中で変えた場合は、PyCharmを再起動してPython Interpreterを再設定しましょう。
PyCharmを再起動しないと上手くdocker-compose.ymlの情報が反映されないためです。