概要
Dockerを使ってDjangoアプリをgunicorn上で動作させたいと思います。話を簡単にするため、Djangoアプリは作成せず、ロケットが飛ぶ例の画面を表示させるだけにしたいと思います。
何分にも初学者ですので間違っている部分もあると思いますが、よろしくお願いします。m(_ _)m
Dockerfileを作成する
# python3をベースにする
FROM python:3
WORKDIR /code
COPY requirements.txt /code/
RUN pip install -r requirements.txt
requirements.txtを作成する
Django==2.2.6
gunicorn
docker-compose.ymlを作成する
version: '3'
services:
web:
build:
context: .
dockerfile: Dockerfile
container_name: django
ports:
- '8000:8000'
volumes:
- '.:/code'
tty: true
stdin_open: true
docker imageをビルドして、コンテナを立てる
$ docker-compose up -d
コンテナの中に入る
$ docker-compose exec web bash
Djangoプロジェクトを作成する
$ django-admin startproject conf .
一旦、開発用サーバーを起動してみる
$ python manage.py runserver 0.0.0.0:8000
ブラウザを開き、localhost:8000にアクセスします。ロケットが飛んでいればOKです。
ターミナルに戻ってCtrl+cを押下し、開発用サーバーを停止させる。
gunicorn上でDjangoアプリを動作させる
開発用サーバー上で動くことが確認できたので、今度はgunicorn上で動作させたいと思います。
$ gunicorn --bind 0.0.0.0:8000 conf.wsgi:application
ブラウザを開き、localhost:8000にアクセスします。ロケットが飛んでいればOKです。見た目は開発用サーバーと同じですが、gunicorn上でDjangoアプリが動作しているはずです。