2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

環境構築について(django+MySQL on docker-compose)

Last updated at Posted at 2022-03-25

はじめに

今回は、私がよく使用する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
2
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?