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

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/

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