- プロジェクトについて
- 環境
- ディレクトリ構成
- 開発環境構築
- トラブルシューティング
(トップへ)
言語・フレームワーク | バージョン |
---|---|
Python | 3.11.4 |
Django | 4.2.1 |
Django Rest Framework | 3.14.0 |
MySQL | 8.0 |
(トップへ)
❯ tree -a -I ".git|.pytest_cache|static" -L 2
.
├── .devcontainer
│ └── devcontainer.json
├── .env
├── .github
│ ├── actions
│ ├── labels.yml
│ ├── release-drafter.yml
│ └── workflows
├── .gitignore
├── .vscode
│ └── settings.json
├── Makefile
├── README.md
├── application
│ ├── .vscode
│ ├── application
│ ├── celerybeat-schedule
│ ├── manage.py
│ ├── output
│ ├── poetry.lock
│ ├── project
│ └── pyproject.toml
├── containers
│ ├── django
│ ├── mysql
│ └── nginx
├── docker-compose.prod.yml
└── docker-compose.yml
(トップへ)
.env ファイルを以下の環境変数例と環境変数の一覧を元に作成
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=django-db
MYSQL_USER=django
MYSQL_PASSWORD=django
MYSQL_HOST=db
MYSQL_PORT=3306
SECRET_KEY=django
ALLOWED_HOSTS=localhost 127.0.0.1 [::1]
DJANGO_SETTINGS_MODULE=project.settings.local
.env ファイルを作成後、以下のコマンドで開発環境を構築
make prepare
http://127.0.0.1:8000 にアクセスできるか確認 アクセスできたら成功
以下のコマンドでコンテナを停止することができます
make down
変数名 | 役割 | デフォルト値 | DEV 環境での値 |
---|---|---|---|
MYSQL_ROOT_PASSWORD | MySQL の root パスワード(Docker で使用) | django-db | |
MYSQL_DATABASE | MySQL のデータベース名(Docker で使用) | django-db | |
MYSQL_USER | MySQL のユーザ名(Docker で使用) | django | |
MYSQL_PASSWORD | MySQL のパスワード(Docker で使用) | django | |
MYSQL_HOST | MySQL のホスト名(Docker で使用) | db | |
MYSQL_PORT | MySQL のポート番号(Docker で使用) | 5432 | |
SECRET_KEY | Django のシークレットキー | secretkey | 他者に推測されないランダムな値にすること |
ALLOWED_HOSTS | リクエストを許可するホスト名 | localhost 127.0.0.1 [::1] back web | フロントのホスト名 |
DEBUG | デバッグモードの切り替え | True | False |
TRUSTED_ORIGINS | CORS で許可するオリジン | http://localhost | |
DJANGO_SETTINGS_MODULE | Django アプリケーションの設定モジュール | project.settings.local | project.settings.dev |
Make | 実行する処理 | 元のコマンド |
---|---|---|
make prepare | node_modules のインストール、イメージのビルド、コンテナの起動を順に行う | docker-compose run --rm front npm install docker-compose up -d --build |
make up | コンテナの起動 | docker-compose up -d |
make build | イメージのビルド | docker-compose build |
make down | コンテナの停止 | docker-compose down |
make loaddata | テストデータの投入 | docker-compose exec app poetry run python manage.py loaddata crm.json |
make makemigrations | マイグレーションファイルの作成 | docker-compose exec app poetry run python manage.py makemigrations |
make migrate | マイグレーションを行う | docker-compose exec app poetry run python manage.py migrate |
make show_urls | エンドポイントをターミナル上で一覧表示 | docker-compose exec app poetry run python manage.py show_urls |
make shell | テストデータの投入 | docker-compose exec app poetry run python manage.py debugsqlshell |
make superuser | スーパーユーザの作成 | docker-compose exec app poetry run python manage.py createsuperuser |
make test | テストを実行 | docker-compose exec app poetry run pytest |
make test-cov | カバレッジを表示させた上でテストを実行 | docker-compose exec app poetry run pytest --cov |
make format | black と isort を使ってコードを整形 | docker-compose exec app poetry run black . docker-compose exec app poetry run isort . |
make update | Poetry 内のパッケージの更新 | docker-compose exec app poetry update |
make app | アプリケーション のコンテナへ入る | docker exec -it app bash |
make db | データベースのコンテナへ入る | docker exec -it db bash |
make pdoc | pdoc ドキュメントの作成 | docker-compose exec app env CI_MAKING_DOCS=1 poetry run pdoc -o docs application |
make init | Terraform の初期化 | docker-compose -f infra/docker-compose.yml run --rm terraform init |
make fmt | Terraform の設定ファイルをフォーマット | docker-compose -f infra/docker-compose.yml run --rm terraform fmt |
make validate | Terraform の構成ファイルが正常であることを確認 | docker-compose -f infra/docker-compose.yml run --rm terraform validate |
make show | 現在のリソースの状態を参照 | docker-compose -f infra/docker-compose.yml run --rm terraform show |
make apply | Terraform の内容を適用 | docker-compose -f infra/docker-compose.yml run --rm terraform apply |
make destroy | Terraform で構成されたリソースを削除 | docker-compose -f infra/docker-compose.yml run --rm terraform destroy |
リモートデバッグ を使用する際は以下の url を参考に設定してください
Django のコンテナへリモートデバッグしよう!
.env ファイルがないので環境変数の一覧を参考に作成しましょう
Docker Desktop が起動できていないので起動させましょう
別のコンテナもしくはローカル上ですでに使っているポートがある可能性があります
下記記事を参考にしてください
コンテナ起動時に Ports are not available: address already in use が出た時の対処法について
make build
を実行して Docker image を更新してください
(トップへ)