ディレクトリ構造
あらかじめ作成しておくファイルなど。
compose.ymlbackend├ requirements.txt└ その他Djangoファイルdocker├ django│├ Dockerfile│└ wait-for-it.sh└ mysql ├ Dockerfile └ init.sqlcompose.ymlは下記のようになってます。
services: db: container_name: django_spa_db platform: linux/x86_64 build: context: ./ dockerfile: ./docker/mysql/Dockerfile volumes: - db-store:/var/lib/mysql - ./docker/mysql:/docker-entrypoint-initdb.d environment: MYSQL_ROOT_PASSWORD: root TZ: "Asia/Tokyo" ports: - 3306:3306 networks: - django_spa backend: container_name: django_spa_back build: context: ./ dockerfile: ./docker/django/Dockerfile ports: - 8000:8000 volumes: - ./backend:/backend command: ["/wait-for-it.sh", "db:3306", "--", "python", "manage.py", "runserver", "0.0.0.0:8000"] depends_on: - db networks: - django_spanetworks: django_spa: driver: bridgevolumes: db-store:Pythonインタープリター設定
設定パネルを開いたらプロジェクト > Pythonインタープリター > インタープリターの追加からDocker...を選択します。
Docker Composeもあるのですが、こちらを選択するとcompose.ymlが上書きされ動かなくなりました。

新規ターゲットでは「プルまたは既存を使用」にチェックをして、イメージタグにはそのままイメージタグを入力します。

あとはそのまま進めば最初の画面でDockerコンテナのインタープリターが選択された状態になります。
パッケージも表示されていれば設定完了です。

データベース設定
データベースを見れるようにしてみます。
右バーのデータベースアイコンをクリックしてデータソース > MySQLを選択します。

設定パネルが開いたらcompose.ymlに記載した情報を入力しましょう。

これで右バーにデータベースが表示されます。
ユニットテスト
右上の再生マークの左から実行構成の編集...を選択。

次は構成テンプレートの編集...を選択。

テンプレートを次のように編集します。

オプションはユニットテスト実行時に指定しているようならそのまま入力。
Docker コンテナーの設定に記載したnetworkを追記します。
下記コマンドで確認してください。
$ docker network ls今回は次のような設定になります。
--entrypoint= --rm --network djangoreactspa_django_spaこれでテストファイルの左にある再生アイコンからテストが実行できるようになります。
コマンドラインの実行(Ruff)
ファイルから何かしらのコマンドを実行したいときがあります。
今回はリンター・フォーマッターのRuffを実行できるようにしてみます。
最初に設定 > プロジェクト > プロジェクト構造でbackendがソースルートになっていることを確認します。
次に設定 > ツール > 外部ツールを選択。
下記のように入力します。
| プログラム | docker |
|---|---|
| 引数 | compose exec backend ruff check $FilePathRelativeToSourcepath$ --fix |

これで、右クリックから外部ツールで実行できるようになります。
以上でPyCharmでDocker+Django開発環境を整える方法でした。
もっといい方法があると思いますので、何かわかったら更新します。

