DockerでDjango環境を構築するメモ
Dockerインストール
以下よりインストーラーをDL。結構時間かかる。

Docker Desktop
Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.
linuxカーネル更新が必要とワーニングが出た場合は以下をインストール

以前のバージョンの WSL の手動インストール手順
wsl install コマンドを使用するのではなく、古いバージョンの Windows に WSL を手動でインストールする手順について段階的に説明します。
ファイル作成
適当なディレクトリを作成して、3つのファイルを用意する。
改行コードはCRLFにする。
Dockerfile
# syntax=docker/dockerfile:1
FROM python:3
ENV PYTHONUNBUFFERED=1
WORKDIR /app
COPY requirements.txt /app/
RUN pip install -r requirements.txt
COPY . /app/
docker-compose.yml
version: "3.9"
services:
db:
image: postgres
volumes:
- ./data/db:/var/lib/postgresql/data
environment:
- POSTGRES_DB=postgres
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
requirements.txt
Django>=3.2,<3.3
psycopg2-binary>=2.8
Djangoプロジェクト生成
docker始動とDjangoのプロジェクト生成が結合したような感じ。
docker-compose run web django-admin startproject app .
DB設定
先ほどのDockerfileに記載されている「 COPY requirements.txt /app/ 」のappディレクトリにsettings.pyがあるので編集する。
settings.py
追加
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}
起動
docker-compose up
確認
http://localhost:8000/