Docker | プログラミング学習 Djang.環境構築 #01

DockerでDjango環境を構築するメモ

Dockerインストール

以下よりインストーラーをDL。結構時間かかる。

Docker Desktop: The #1 Containerization Tool for Developers | Docker
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/

タイトルとURLをコピーしました