Django
は Python
で書かれた高機能なWebフレームワークで、データベースとして MySQL
を使用することが多いです。この組み合わせで開発環境を効率的に構築するには、 Docker
と docker-compose
を使用するのが最適です。この記事では、 Django 4.0
と MySQL 8.0
を使用して開発環境を docker-compose
で構築する手順を詳しく説明します。
1. 環境構築の準備
まず、プロジェクト用のディレクトリを作成し、その中にDockerfile
やdocker-compose.yml
などの設定ファイルを配置します。以下の手順に従って準備を進めます。
1.1 プロジェクトディレクトリの作成
mkdir django_mysql_docker
cd django_mysql_docker
1.2 必要なファイルの作成
プロジェクトディレクトリ内に以下のファイルを作成します。
Dockerfile
docker-compose.yml
requirements.txt
2. Dockerfileの作成
Dockerfile
は、Djangoアプリケーションのイメージを作成するための設定ファイルです。以下のように作成します。
# ベースイメージとしてPythonを使用(Django 4.0に対応するPython 3.9を使用)
FROM python:3.9
# 作業ディレクトリを作成
WORKDIR /app
# 必要なパッケージをインストール
COPY requirements.txt /app/
RUN pip install --no-cache-dir -r requirements.txt
# プロジェクトのソースコードをコピー
COPY . /app/
# Djangoアプリケーションを起動
CMD ["python", "manage.py", "runserver", "0.0.0.0:8000"]
3. requirements.txtの作成
requirements.txt
には、DjangoとMySQLのドライバを含む必要なPythonパッケージを指定します。今回はDjango 4.0を使用します。
Django>=4.0,<5.0
mysqlclient
4. docker-compose.ymlの作成
docker-compose.yml
は、DjangoとMySQLコンテナを定義するファイルです。以下の内容で作成します。
version: '3.8'
services:
db:
image: mysql:8.0 # MySQL 8.0を使用
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: rootpassword
MYSQL_DATABASE: django_db
MYSQL_USER: django_user
MYSQL_PASSWORD: password
ports:
- "3306:3306"
web:
build: .
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/app
ports:
- "8000:8000"
depends_on:
- db
environment:
DB_HOST: db
DB_NAME: django_db
DB_USER: django_user
DB_PASSWORD: password
volumes:
db_data:
5. Djangoプロジェクトの設定
5.1 Djangoプロジェクトの作成
Djangoプロジェクトを作成し、設定ファイルを編集します。
docker-compose run web django-admin startproject myproject .
5.2 settings.pyの編集
Djangoプロジェクトのsettings.py
ファイルを編集して、MySQLデータベースの設定を追加します。
# myproject/settings.py
import os
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': os.getenv('DB_NAME'),
'USER': os.getenv('DB_USER'),
'PASSWORD': os.getenv('DB_PASSWORD'),
'HOST': os.getenv('DB_HOST'),
'PORT': '3306',
}
}
6. コンテナのビルドと起動
すべての設定が完了したら、コンテナをビルドして起動します。
6.1 コンテナのビルド
docker-compose build
6.2 コンテナの起動
docker-compose up
6.3 マイグレーションの実行
初回起動時に、Djangoのデータベースマイグレーションを実行して、データベースを初期化します。
docker-compose run web python manage.py migrate
7. 動作確認
ブラウザでhttp://localhost:8000
にアクセスして、Djangoの初期画面が表示されることを確認します。
"Congratulations!" と表示された、ロケットが離陸しているページが出れば成功です。
まとめ
この記事では、Django 4.0とMySQL 8.0の開発環境をdocker-composeを使用して効率的に構築する方法を紹介しました。この手法を使用することで、開発環境を簡単にセットアップでき、他の開発者と共有することができます。以下に主要なステップをまとめます。
- プロジェクトディレクトリの作成: 必要なファイルを配置。
- Dockerfileの作成: Djangoアプリケーションのイメージを定義。
- requirements.txtの作成: 必要なPythonパッケージを指定。
- docker-compose.ymlの作成: DjangoとMySQLのコンテナを定義。
- Djangoプロジェクトの設定: MySQLデータベースを設定。
- コンテナのビルドと起動: 開発環境を起動。
- 動作確認: ブラウザでDjangoの初期画面を確認。
これらの手順を踏むことで、Django 4.0とMySQL 8.0を使ったWebアプリケーション開発がスムーズに進められるようになります。ぜひ試してみてください。
コメント