適当な思いつきで書くブログ

テキオモの記憶の片隅に追いやられそうな出来事を書き連ねます

docker-composeでDjangoの開発環境をサクッと作成する

2017年05月29日

Dockerだけで作りたかったのだけれども、volumeを前提としてdocker build時にmigrateしても、docker runするとmigrateしたファイルがいっさいがっさいなくなってしまうのでdocker-composeで作った。

ファイル構成は以下のような作りを想定。

.
./app
./manage.py
./requirements/develop.txt
./Dockerfile
./docker-compose.yml

./docker-compose.ymlはこんな感じ。

version: '2'
services:
  web:
    build: .
    command: python apps/manage.py runserver 0.0.0.0:8000 --insecure
    volumes:
      - .:/code
    ports:
      - "8000:8000"

./Dockerfileはこんな感じ。/codeのディレクトリ名は適当に。

FROM python:3.5

ENV PYTHONUNBUFFERED 1

VOLUME /code
WORKDIR /code

ADD . /code

RUN pip install -r requirements/development.txt \
  && python3 manage.py migrate

初回build後にcreatesuperuserで管理画面ユーザーを作成する。必要なければ省ける。

$ docker-compose build
$ docker-compose run web python3 ./manage.py createsuperuser
$ docker-compose up