Skip to content

Latest commit

 

History

History
223 lines (175 loc) · 12.2 KB

README.md

File metadata and controls

223 lines (175 loc) · 12.2 KB

使用技術一覧

目次

  1. プロジェクトについて
  2. 環境
  3. ディレクトリ構成
  4. 開発環境構築
  5. トラブルシューティング



drf-practice

DRF の検証用リポジトリ


プロジェクト詳細 »

(トップへ)

環境

言語・フレームワーク バージョン
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: no such file or directory

.env ファイルがないので環境変数の一覧を参考に作成しましょう

docker daemon is not running

Docker Desktop が起動できていないので起動させましょう

Ports are not available: address already in use

別のコンテナもしくはローカル上ですでに使っているポートがある可能性があります
下記記事を参考にしてください
コンテナ起動時に Ports are not available: address already in use が出た時の対処法について

Module not found

make build

を実行して Docker image を更新してください

(トップへ)