やる気がストロングZERO

やる気のストロングスタイル

PyCharmでDocker側のpythonインタプリタを使ってデバッグ実行する設定

サンプル用コードを用意

git clone https://github.com/mixmaru/django_nginx_uwsgi_environment.git

PyCharmで開く。

インタプリタの設定

Preferences->Project Interpreter画面の
Project Interpreter項目でaddを押す
開いた画面の左側メニューから「Docker Compose」を選択し,

Server: Docker  
Configuration file(s) ./docker-compose.yml  
Service: app  
Environment variables: (空欄)  
Python interpreter path: python3 # pythonと初期入力されているがpython3と入力(サンプルコードのappのコンテナ環境ではpython3としてインストールしているため)  

OKを押す。

PyCharmのDjangoサポートを有効にする

Preferences->Languages & Frameworks -> Django画面で

・Enale Django Supportのチェックボックスにチェックを入れる  
・Django project root:/(your_dir_path)/django_nginx_uwsgi_environment/app/sync/project  
・Settings:project/settings.py  
・Manage script:manage.py(自動的に入った)  

OKを押す。

Run/Debug Configurationsを設定する

デバッグ実行ボタン横の[Add Configuration…]と表示されている部分をクリック
Run/Debug Configurations画面が開く。
+ボタンを押してDjango serverを選択
Configurationタブにて

・Host:0.0.0.0  
・Port:80  

あとは初期値のままでOKを押す

Djangoの実行

PyCharm左上の実行ボタン「緑三角」を押す。
なぜかdb接続がうまくいかないことがあるが、(dbコンテナよりも先にappコンテナが立ち上がって見つけられないっぽい) 再度実行したりを何度かしているとうまくいく。(docker-compose.ymlのdepends_on設定は見ていない?)

http://0.0.0.0/でアクセスするとDjangoの表示が見える。
(サンプルコードでは「ALLOWED_HOSTSに0.0.0.0を設定していない」的なエラー画面が表示された)

これで、ブレークポイントを設置してデバッグ実行でラインデバッグできる。