DockerでDjango動いたら幸せになるんじゃないかという青い鳥を求めました。
とりあえず公式のQuickStartをやってみます。
https://docs.docker.com/compose/django/
なんにしろvenvで仮想環境を構築。
$ python3 -m venv dd_project
$ cd dd_prioject
$ source bin/activate
pipでdjango入れておきます。
$ pip install --upgrade pip
$ pip install "django==2.0.1"
Dockerfile作れとのこと。
$ vi Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
psycopg2がいるらしいのでpipで入れておきます。
$ pip install psycopg2
requirements.txtを使うらしいので、作っときます。pipのいいところ。
$ pip freeze > requirements.txt
compose.ymlがいるとのこと。ここらへんのdocker設定、やったことあるはずなのにきちんと理解してないんですよね。。学ばねば。
$ vi docker-compose.yml
version: '3'
services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
んで、docker-compose
$ docker-compose run web django-admin.py startproject composeexample .
これがよく分からないのであとで追わねば。まあwebサーバとしてrunして、djangoの新規プロジェクトを作ってる、っていうイメージの設定を書いてるんでしょね。
でup、と。
$ docker-compose up
これだ確かにlocalhost:8000でアクセスできます。
postgresも動いているっぽいです。
これでdbをrdsで動くようにして、サーバはdockerrunじゃなくてwebでって設定できればecsにあげるだけで動く幸せシステムができるんでしょか。