【Python】Docker-composeでDjangoの環境をセットアップ
はじめに
こんにちは、がんがんです。
昨年の12月よりせっせことインフラ(Docker)の勉強をしております。以前Flaskの環境を立てましたが、他の環境もいろいろ構築してみたいなと思いました。
まずはPythonの有名なライブラリであるDjangoの環境をDocker Composeを用いて構築していきます。
目次
目的
- Docker-composeを用いてDjangoの環境をセットアップ
環境(バージョン)
- Python:3.7.5
- Django:2.2.2
- PostgreSQL:11
- psycopg2:2.8.3
Dockerfileのセットアップ
Dockerfileのセットアップは基本的にDocker公式と同じです。Pythonのバージョンはpullしていた3.7.5を使用しています。
FROM python:3.7.5 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code COPY requirements.txt /code/ RUN pip install -r requirements.txt COPY . /code/
docker-compose.ymlのセットアップ
docker-compose.ymlについても基本的には変化ありません。ローカル側のファイルの置き場が違うくらいです。
version: '3' services: db: image: postgres:11 web: build: ./web command: python manage.py runserver 0.0.0.0:8000 volumes: - ./src:/code ports: - "8000:8000" depends_on: - db
requirements.txtのセットアップ
こちらもバージョン指定範囲内です。
Django==2.2.2 psycopg2==2.8.3
DBの設定
作成が完了すると、src/mysite/
の直下に.pyファイルがいくつか生成されます。
src/mysite/setting.py
のDB部分を下記のように変更します。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'HOST': 'db', 'PORT': 5432, } }
プロジェクトの起動
実際にプロジェクトを起動させていきます。
$ docker-compose up -d
下記の画面が表示されれば無事に接続は完了です。