React、DRF、Terraform のテンプレートリポジトリ
React、DRF、Terraform を勉強する際に使用できるテンプレート
(トップへ)
| 言語・フレームワーク | バージョン |
|---|---|
| Python | 3.11.4 |
| Django | 4.2.1 |
| Django Rest Framework | 3.14.0 |
| MySQL | 8.0 |
| Node.js | 16.17.0 |
| React | 18.2.0 |
| Next.js | 13.4.6 |
| Terraform | 1.3.6 |
その他のパッケージのバージョンは pyproject.toml と package.json を参照してください
(トップへ)
❯ tree -a -I "node_modules|.next|.git|.pytest_cache|static" -L 2 . ├── .devcontainer │ └── devcontainer.json ├── .env ├── .github │ ├── action │ ├── release-drafter.yml │ └── workflows ├── .gitignore ├── Makefile ├── README.md ├── backend │ ├── .vscode │ ├── application │ ├── docs │ ├── manage.py │ ├── output │ ├── poetry.lock │ ├── project │ └── pyproject.toml ├── containers │ ├── django │ ├── front │ ├── mysql │ └── nginx ├── docker-compose.yml ├── frontend │ ├── .gitignore │ ├── README.md │ ├── test │ ├── components │ ├── features │ ├── next-env.d.ts │ ├── package-lock.json │ ├── package.json │ ├── pages │ ├── postcss.config.js │ ├── public │ ├── styles │ ├── tailwind.config.js │ └── tsconfig.json └── infra ├── .gitignore ├── docker-compose.yml ├── main.tf ├── network.tf └── variables.tf
(トップへ)
.env ファイルを以下の環境変数例と環境変数の一覧を元に作成
.env MYSQL_ROOT_PASSWORD=root MYSQL_DATABASE=django-db MYSQL_USER=django MYSQL_PASSWORD=django MYSQL_HOST=db MYSQL_PORT=3306 SECRET_KEY=django DJANGO_SETTINGS_MODULE=project.settings.local
.env ファイルを作成後、以下のコマンドで開発環境を構築
make prepare
http://127.0.0.1:8000 にアクセスできるか確認 アクセスできたら成功
以下のコマンドでコンテナを停止することができます
make down
| 変数名 | 役割 | デフォルト値 | DEV 環境での値 |
|---|---|---|---|
| MYSQL_ROOT_PASSWORD | MySQL のルートパスワード(Docker で使用) | root | |
| 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 で使用) | 3306 | |
| 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 を更新してください
(トップへ)
https://qiita.com/shun198/items/c983c713452c041ef787 参考にさせていただきました!