dockerもdjangoも素人ですごく苦労したのでメモ。
変なこと書いていたら教えてください。
IntelliJのバージョン
IntelliJ IDEA 2018.1 (Ultimate Edition)
多分PyCharmとかでもやり方は同じだと思う。
状況
django(djangorestframework)とmysqlをそれぞれ別々のcontainerで起動。
djangoをIntelliJでデバッグしながら開発したい。
djangoは./manage.py runserver 0.0.0.0:8000
で動かしている。
やりかた
Project Structure
の設定
⌘+;
のProject Structure
のModules
で下記のように設定する。
Django
が表示されていない場合は一度-
で消して再度+
すれば出てくると思います。
Django project root
:
manage.py
がある場所を指定
Settings
:
settings.py
を指定
Manage script
:
manage.py
を指定
Edit Configurations
の設定
django用の起動設定を作成します。
Run
> Edit Configurations
とか、右上からEdit Configurations
を開く
Django server
がないときはmoreをクリックするとあるはず。
Host
:
0.0.0.0
=> 重要ポイントその1
Port
:
django動かしてるポート (8000
)
Environment variables
:
勝手に入っている
DJANGO_SETTINGS_MODULE=api.settings
おそらくこれが重要
Python Interpreter
:
Project SDK として指定しているdockerのpythonを指定
Docker container settings
:
各々の環境に合わせて設定。
ここでハマった。
横の...
をクリックでGUIで指定できます。
Network mode
:
=> 重要ポイントその2
mysqlが動いているネットワーク名を指定
$ docker network ls
で確認できます。
そのほかの項目はdocker-compose.yml
と合わせる。
実行
1.何らかの方法でmysqlのdockerを起動
私の場合は
$ docker-compose up db
2.上記で作成した起動ファイルを実行
設定ファイル名を選択して虫マークをクリック。