docker-composeでDjango5のローカル環境を構築する方法まとめ

Django5が2023年12月にリリースされました🎉✨

公式リリースノートはこちら: https://docs.djangoproject.com/en/5.0/releases/5.0/

今回の記事では、執筆時点での最新バージョンであるDjango5.0.3のローカル環境をdocker-composeで構築していこうと思います。

本記事で書かないこと

  • Django5のこと
  • docker, docker-composeのインストール
  • docker, docker-composeの細かい使い方

本記事で書くこと

  • docker-composeを使ってDjango5のローカル環境を作る方法

環境構築でやることリスト

  • requirements.txtを作成
  • Dockerfileを作成
  • イメージ作成
  • Djangoプロジェクトを作成
  • docker-compose.yaml作成
  • コンテナ起動
  • ブラウザで確認

requirements.txtを作成

まずはDjangoで色々なライブラリをインストールするために必要な requirements.txtから作っていきます。最初はシンプルにDjangoだけを指定します。

django==5.0.3

Dockerfileを作成

イメージの元となるDockerfileを使っていきます。今回は簡易的に環境構築を行うため、PythonのAlpineのイメージを使います。

また、Django5はPython 3.10 以上をサポートしています。今回は新しめの3.12を使います。

Python compatibility

Django 5.0 supports Python 3.10, 3.11, and 3.12. We highly recommend and only officially support the latest release of each series.

The Django 4.2.x series is the last to support Python 3.8 and 3.9.

https://docs.djangoproject.com/en/5.0/releases/5.0/#:~:text=Python%20compatibility%C2%B6,3.8%20and%203.9.
FROM python:3.12

ENV APP_PATH /app
RUN mkdir -p /app
WORKDIR $APP_PATH

COPY requirements.txt $APP_PATH/
RUN pip install --no-cache-dir -r requirements.txt

イメージ作成

以下のコマンドでイメージを作成します。

docker build -t django5_sample ./
...
...
 => [internal] load build context                                          0.0s
 => => transferring context: 56B                                           0.0s
 => [2/5] RUN mkdir -p /app                                                0.3s
 => [3/5] WORKDIR /app                                                     0.0s
 => [4/5] COPY requirements.txt /app/                                      0.0s
 => [5/5] RUN pip install --no-cache-dir -r requirements.txt             105.2s
 => exporting to image                                                     0.4s
 => => exporting layers                                                    0.4s
 => => writing image sha256:912c8f34478fb2399d8961ce0db0401e30b21693d875e  0.0s
 => => naming to docker.io/library/django5_sample                          0.0s

イメージが作成できたか確認します。

$ docker images | grep django5
django5_sample               latest    912c8f34478f   5 minutes ago   1.06GB

Djangoプロジェクトを作成

作成したイメージでコンテナを起動し、Djangoプロジェクトを作成します。

プロジェクト名は django5_sample_project とします。

$ docker run --rm --mount type=bind,src=$(pwd),dst=/app django5_sample:latest django-admin startproject django5_sample_project .

django5_sample_project というディレクトリが作成されていたら成功です 🎉

docker-compose.yaml作成

Djangoのアプリケーションサーバしかないからdocker-composeはいらないでしょう、と思う人も多いかもですが、結局はDBやらのコンテナを追加するので、最初からdocker-composeで動くようにしてた方が楽です。

ということでdocker-compose.yamlを作っていきます。

version: '3'
services:
  django:
    restart: always
    build: .
    volumes:
      - ./:/app
    command: /bin/sh -c "cd /app; python manage.py runserver 0:8000"
    ports:
      - 8000:8000

コンテナ起動

以下のコマンドでコンテナを起動します。

$ docker-compose up
Creating network "django5_default" with the default driver
Creating django5_django_1 ... done
Attaching to django5_django_1
django_1  | Watching for file changes with StatReloader

ブラウザで確認

ブラウザで localhost:8000 にアクセスしてみましょう

無事にプロジェクトが立ち上がりました🎉

画面右上に Django5 とありますね 👍

これを基に、MySQLと繋げたり、色々やっていきたいと思います。

最後までお読みいただきありがとうございました!

Related Posts