Help us understand the problem. What is going on with this article?

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の虫アイコンデバックボタンをぽっちとした結果。。。

スクリーンショット 2019-12-18 17.11.59.png

嗚呼。。。

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

原因を探る

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にしたら
動きました。
スクリーンショット 2019-12-19 14.16.12.png

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

スクリーンショット 2019-12-19 14.27.11.png

スクリーンショット 2019-12-19 14.23.39.png

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした