docker を使って django + mysql の環境を作る

2021年6月13日

dockerを使ってdjango+mysqlの環境を作る

参考:
  ・docker-composeでDjango + MySQLの環境を作る
  ・DockerでDjangoを動かしてみる
  ・クィックスタート: Compose と Django

ファイルを作成する

【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

【requirements.txt】


Django>=2.2.4
mysqlclient==1.4.6

【docker-compose.yml】


version: '3'
services:
 web:
   container_name: django_container
   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: mysql_container
   image: mysql:5.7
   restart: always
   environment:
     MYSQL_DATABASE: django_database
     MYSQL_USER: root
     MYSQL_PASSWORD: password
     MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
   volumes:
     - ./mysql:/var/lib/mysql
   ports:
     - 33306:3306

コンテナを起動させてプロジェクトを作成する


docker-compose run --rm web django-admin startproject django_project .

djangoコンテナからmysqlコンテナに接続する

settings.pyを下記の通りに書き換える。


DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django_database',
        'USER': 'root',
        'HOST': 'db',
        'PORT': 3306,
    }
}

docker-compose upでローカルサーバーを起動する


docker-compose up -d
YouTube

2021年6月13日