📓
DockerでDjango+mysql環境の構築&プロジェクト作成
環境構築手順
- 適当なディレクトリを作成
- docker-compose.yml, dockerfile, requirements.txt を用意
$ touch docker-compose.yml Dockerfile requirements.txt
- それぞれのファイルに必要な項目を記載
requirements.txt
Django>=2.2.4
mysqlclient==1.4.6
dockerfile
FROM python:3.7
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip3 install -r requirements.txt
ADD . /code/
EXPOSE 8000
docker-compose.yml
version: ‘3’
services:
web:
container_name: "コンテナ名"
build: .
command: python3 manage.py runserver 0.0.0.0:8000
working_dir: /code
ports:
— 8000:8000
volumes:
— .:/code
depends_on:
— db
db:
container_name: "コンテナ名"
image: mysql:5.7
restart: always
environment:
MYSQL_DATABASE: "データベース名"
MYSQL_USER: root
MYSQL_PASSWORD: password
MYSQL_ALLOW_EMPTY_PASSWORD: ‘yes’
volumes:
— ./mysql:/var/lib/mysql
ports:
— 3306:3306
プロジェクトの作成手順
- ターミナルからdocker-composeコマンドを叩いてDjangoプロジェクトを作成
$ docker-compose run web django-admin startproject "プロジェクト名" .
-
"プロジェクト名"/setting.py
のDATABASEを編集
"プロジェクト名"/setting.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'データベース名',
'USER': 'root',
'HOST': ‘db’,
'POST': 3306
}
}
- コンテナ起動
$ docker-compose up -d
参考
Discussion