はじめに
今回は、私がよく使用するdjango+MySQLの環境構築について紹介します
想定環境
Dockerとdocker-composeがインストールされているとします。
環境構築までの流れ
環境構築までの流れは以下のようになっています。この3ステップを踏めば環境構築することができます。
・ファイル準備
・プロジェクトの作成
・サービスの起動
ファイル準備
用意するファイルは以下の三つになります。一つのディレクトリに入れておきます。
Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
COPY requirements.txt /code/
RUN pip install --upgrade pip && pip install -r requirements.txt
COPY . /code/
docker-compose.yml
version: '3'
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: django-db
MYSQL_USER: django
MYSQL_PASSWORD: django
TZ: 'Asia/Tokyo'
command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
requirement.txt
Django==3.1 # Django3.1
mysqlclient # pythonでMySQLに接続するためのドライバ
sqlalchemy
プロジェクトの作成
作成したファイルがおいてあるディレクトリに移動し、ターミナル上で以下のコマンドを実行する
docker-compose run web django-admin.py startproject djangopj .
- プロジェクトが開始されたことを確認したら、djangopj/settings.pyを開き、DATABASESの項目を編集します。
→ djangoプロジェクトの作成をした際、settings.pyにはsqliteの設定がデフォルトでされている為です。
setting.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django-db',
'USER': 'django',
'PASSWORD': 'django',
'HOST': 'db',
'PORT': '3306'
}
}
サービスの起動
docker-compose.ymlが置いてあるディレクトリで、以下のコマンドを実行
docker-compose up
- http://localhost:8000/ にアクセスしてDjangoのトップページが表示されたらOK