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
にアクセスしてみましょう
無事にプロジェクトが立ち上がりました🎉
画面右上に Django
5 とありますね 👍
これを基に、MySQLと繋げたり、色々やっていきたいと思います。
最後までお読みいただきありがとうございました!