Skip to content

shun198/drf-practice

Repository files navigation

使用技術一覧

目次

  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 を更新してください

(トップへ)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •