docker-composeで立ち上げたdjangoをpycharmでデバックできるようにする


前回の記事 docker-composeでdjango環境を作ってみる(MariaDB + Nginx + uWSGI) で docker環境でdjangoを開発できるようになったので、今回はjetbrain社のpycharmでデバックできるようにします。

使っているpycharmはPyCharm 2019.3 (Professional Edition)です。

pycharmはpythonを始めるのと同時に使い始めたのですが、始める前までに設定することが多くて混乱しました。(インタプリタ、デバックとか)

PyCharm設定

とりあえずpycharmの公式ドキュメント通りにデバック設定をしてみます。
リモートインタープリターとしてのDocker Composeの設定

インタプリタにdocker内のpythonを登録して、pycharmのデバック設定でホストを0.0.0.0
(nginxのポート8000, uwsgiのポート8001)

そしてpycharmの虫アイコンデバックボタンをぽっちとした結果。。。

嗚呼。。。

ということでデバックできるようにします。

原因を探る

error.logをみてみると

[error] 8#8: *15 connect() failed (111: Connection refused) while connecting to upstream,

nginxのconfかuwsgi.iniをなおせばデバックできそう。

失敗

自分のnginx.confと似ているstackoverflowの記事を発見
https://stackoverflow.com/questions/32653394/uwsgi-nginx-error-connect-failed-111-connection-refused-while-connecting

confとuwsgi.iniのソケットの書き方も良さそう。
docker-compose.ymlの方もexpose:8001してある。

相変わらず 502 Bad Gateway

嗚呼。。。

docker-compose.ymlを修正で直ったかもしれない

docker-compose.ymlのpython部分にportを書き足して

...省略

python:
    build: ./python
    image: app_python
    container_name: app_python
    expose:
      - "8001"
    ports:
      - "8001:8001"  # 追加
    command: uwsgi --ini /code/project/uwsgi.ini
    volumes:
      - ./src:/code
      - ./static:/static
    depends_on:
      - db

pycharmのdjango server設定でポートをnginxの8000じゃなくて、uwsgiの8001にしたら
動きました。

もっといい方法がありそうですがとりあえず、ブレイクポイント置いて、デバックできるようになりましたし、nginxの方で読み込んでいるdjango adminのcssも効いているので現状はこれで。