はじめに
チームで始める時や、複数のPCを使用する時にdockerの設定ファイルを作成しておくと楽ちん。
そろそろPCが増えそうなので、改めてdockerの設定ファイルを作成してみました。
dockerをインストールする
Get Started with Docker
https://www.docker.com/get-started
docker-composeとDockerfileを作成してインストールする
Djangoのソースを置く場所を決めて、そこに以下のファイルを置く。
docker-compose.yml
version: '3'
services:
db:
image: postgres:13
environment:
POSTGRES_HOST_AUTH_METHOD: 'trust'
container_name: "postgre"
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
FROM python:3.8
# 環境変数 PYTHONUNBUFFEREDを設定 バイナリレイヤ下での標準出力とエラー出力を抑制
ENV PYTHONUNBUFFERED 1
# mkdirコマンドの実行
RUN mkdir /code
# 作業ディレクトリの設定
WORKDIR /code
# req.txtを/codeに追加する
COPY req.txt ./
# Pythonのパッケージ管理ツールのpipをアップグレード
RUN pip install --upgrade pip
# pipでreq.txtに指定されているパッケージを追加する
RUN pip install -r req.txt
# ローカルのディレクトリを/codeに追加する
ADD . /code
# ポートを開く
EXPOSE 8000
req.txt
Django>=3.1,<3.2
mysqlclient>=2.0,<2.1
gunicorn>=20.0,<21
psycopg2>=2.8,<2.9
Djangoのadminを作成する
docker-compose run --rm web django-admin.py startproject django_admin
setting.pyを修正する
setting.py
ALLOWED_HOSTS = ["*"]
DATABASES = {
'default': { 'ENGINE': 'django.db.backends.postgresql',
'NAME':
'postgres',
'USER':
'postgres',
'HOST':
'db',
'PORT': 5432,
}
}
変更内容をコンテナに反映する
docker-compose up -d
djangoを開く