🖥️
Djnago プロジェクトを立ち上げる
開発環境の設定(docker)
まずは、docker環境で実行するため、必要な設定をしていきます。
backend/Dockerfile
# ベースイメージ
FROM python:3.12
# 環境変数設定
ENV PYTHONUNBUFFERED 1
# ワーキングディレクトリ設定
WORKDIR /backend
# Poetry をインストール
RUN pip install poetry
# pyproject.toml と poetry.lock をワーキングディレクトリにコピー
COPY pyproject.toml* poetry.lock* /backend/
# 依存関係をインストール
# poetryでライブラリをインストール (pyproject.tomlが既にある場合)
RUN poetry config virtualenvs.in-project false
RUN if [ -f pyproject.toml ]; then poetry install; fi
# poetryの実行用コマンド
ENTRYPOINT ["poetry", "run"]
# カレントディレクトリの全てのファイルをワーキングディレクトリにコピー
COPY . /backend/
compose.yml
services:
backend:
container_name: backend
build:
context: ./backend
dockerfile: Dockerfile
volumes:
- ./backend/.dockervenv/:/backend/.venv/
- ./backend/:/backend/
- static:/backend/static_root
- media:/backend/media
environment:
TZ: Asia/Tokyo
ports:
- 8000:8000
depends_on:
- db
db:
container_name: backend_db
image: postgres:latest
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
TZ: Asia/Tokyo
PGTZ: Asia/Tokyo
volumes:
static:
media:
pgdata:
記載したら、
bash
docker compose build
を実行します。
dockerでpoetryを実行>必要なライブラリなどをインストール
必要なライブラリ関係をpoetryを利用してインストールします。
今回インストールするのは、以下のライブラリです。
【インストールするライブラリ】
--dependency django --dependency django-ninja --dependency psycopg2 --dependency psycopg2-binary --dependency pydantic --dependency django-cors-headers --dependency uuid --dependency python-jose --dependency python-dotenv
以下のコマンドを実行します。
bash
docker compose run --entrypoint "poetry init --name [コンテナ名] [インストールするライブラリ]" [コンテナ名]
最終的に実行したコマンドは以下のとおりです。
bash
docker compose run --entrypoint "poetry init --name
backend --dependency django --dependency django-ninja --dependency psycopg2 --dependency psycopg2-binary --dependency pydantic --dependency django-cors-headers --dependency uuid --dependency python-jose --dependency python-dotenv" backend
実行すると、pyproject.tomlが生成され、必要な依存関係がメモされており、これに基づいてライブラリなどをインストールします。
そして、以下のコマンドを実行します。
bash
docker compose run --entrypoint "poetry install" backend
以下を実行
bash
docker-compose build --no-cache
プロジェクトの作成
Djnagoのプロジェクトを作成します。
bash
docker compose run backend django-admin startproject project .
compose.ymlに以下を追記します。
これで、コンテナを立ち上げた時に、サーバーも起動するようになります。
compose.yml
command: >
bash -c "python manage.py migrate
&& python manage.py runserver 0.0.0.0:8000"
最後に以下のコマンドを実行して、Djangoのトップの画面が表示されれば成功です。
bash
docker compose up
Discussion