Dockerで起動したDjangoプロジェクトをPycharmのデバッグモードで起動


press
Dockerで起動したDjangoプロジェクトをPycharmのデバッグモードで起動

Dockerで起動したDjangoプロジェクトをPycharmのデバッグモードで起動

Dockerで起動したDjangoプロジェクトをPycharmのデバッグモードで起動して、ブレークポイントを設定して任意の行でプログラムの実行を一時停止します。venvなどの環境でDjangoプロジェクトを作成した場合はデバッグモードで起動するだけでプレークポイントが効きますが、Docker環境の場合は設定が必要です。

コードはGitHubリポジトリにあげています。

開発環境

$ tree
.
├── Dockerfile
├── README.md
├── docker-compose.yml
├── nginx
│   ├── Dockerfile
│   └── nginx.conf
└── simple-django-project
    ├── Pipfile
    ├── Pipfile.lock
    ├── README.md
    └── config
        ├── app
        ├── config
        ├── manage.py
        └── static

リポジトリをクローン

$ git clone https://github.com/nobnov/simple-django-project.git

Dockerfileを編集

    ADD PROJECTNAME/Pipfile /code/
    ADD PROJECTNAME/Pipfile.lock /code/
    ↓
    ADD simple-django-project/Pipfile /code/
    ADD simple-django-project/Pipfile.lock /code/

docker-compose.ymlを編集

    web:
    ...
    command: gunicorn WSGIPATH.wsgi:application --bind 0.0.0.0:8000
    volumes:
        - ./PROJECTNAME:/code
    ↓
    command: gunicorn config.wsgi:application --bind 0.0.0.0:8000
    volumes:
        - ./simple-django-project/config/:/code


    nginx:pw
    ...
    volumes:
            - ./PROJECTNAME/static:/static
    ↓
    volumes:
            - ./simple-django-project/config/static:/static

Dockerをビルド

$ docker-compose build

Dockerを起動

$ docker-compose up -d

無事にDockerが起動できていれば画像のように全て緑色になります。

Dockerの確認
Dockerの確認

ブラウザ確認

localhost/appにアクセスして起動できるか確認します

ブラウザ確認
ブラウザ確認

デバッグモードの設定

1. インタプリタの設定

環境設定でインタプリタを指定

インタプリタの設定
インタプリタの設定

2. フレームワークの設定

manage.pyがあるプロジェクトルートとsettings.pyを指定します。

フレームワークの設定
フレームワークの設定

3. コンフィギュレーションの追加

ホストを0.0.0.0にすることが重要です。Python Interpreterは先ほど指定した環境になっていることを確認します。

コンフィギュレーションの追加
コンフィギュレーションの追加

デバッグモードで起動

ブレークポイントを設定

行の右横をクリックすると赤丸が表示されます。

ブレークポイントを設定
ブレークポイントを設定

先ほど確認したブラウザでリロードすると、画像のようにブレークポイントを設定した箇所でプログラムの実行が一時停止します。

デバッグモード
デバッグモード

進むをボタンを押すとプレークポイントを抜けて、ブラウザに戻り表示されているのが確認できます。

ブラウザ確認
ブラウザ確認

人気のタグ

Beautiful Soup black calender Channels charset ChromeDriver datetime Docker File Watcher flake8 gettext GitHub glob Google Colaboratory GPU Gunicorn i18n Matplotlib Nginx OpenCV pandas Pillow Pipenv PostgreSQL psycopg2 PyCharm PyCon pyenv random Redis ReportLab requests Selenium timedelta Ubuntu uWSGI venv


株式会社ファントムへのお問い合わせ

群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    Show Comments (0)

    Comments

    Related Articles

    Django

    Dockerを使ってDjangoとPostgreSQL環境を構築する方法

    Dockerを使ってシンプルなDjangoとPostgreSQLの開発環境を構築する方法です。GitHubリポジトリをクローンして以下のコマンドを入力します。 1. Dockerイメージを作成 2. Djangoプロジェ […]

    Posted on by press
    Django

    Pandasで作ったCSVをダウンロードする

    Django上でPandasで作ったCSVをダウンロードさせる方法です。df.to_csv(“filename.csv”)でも出力は出来ますがダウンロードは出来ないので、ダウンロード機能が必要な場 […]

    Posted on by press

    ,,,