RAKSUL TechBlog

ラクスルグループのエンジニアが技術トピックを発信するブログです

Docker Composeを用いてPyCharm上でデバック

ノバセル株式会社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の情報が反映されないためです。