# docker環境でDjangoアプリ開発

# はじめに

クィックスタート: Compose と Django (opens new window)を参考にして、Django/PostgreSQL アプリの開発環境を構築しました。

# 開発環境

MacBook Air (M2チップ搭載 2022モデル)

# プロジェクトのコンポーネントを定義

# Dockerfile を作成

Dockerfileを作成し、次の内容を加えます。

FROM python:3.9-buster
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/

# requirements.txt を作成

参考サイトでインストールされているDjangoのバージョンは古かったので上げています。

Django>=3.0,<4.0
psycopg2

# docker-compose.yml を作成

version: '3'

services:
  db:
    image: postgres
    ports: 
      - "5432:5432"
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres
  web:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db

# Django プロジェクトの作成

プロジェクトのディレクトリに移動して、次のコマンドを打ちます。

docker-compose run web django-admin.py startproject {プロジェクト名} .

# データベースへの接続設定

{プロジェクト名}/settings.py ファイルの DATABASES = の箇所を次のように変更します。

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
    }
}

docker-compose up を実行します。

この状態で http://localhost:8000 (opens new window) にアクセスして、以下の画面が表示されたら成功です。

1

サービスを停止させたい場合は、Ctrl-C を押します。

Last Updated: 1年前