今回は公式チュートリアル通りにdocker上にdjangoのアプリを展開してみます。
単純に自分用の備忘録です
まず空のディレクトリを作成します。
mkdir test cd test
次にこのディレクトリの中に以下のような記述があるDockerfileを作成します。
FROM python:3 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code COPY requirements.txt /code/ RUN pip install -r requirements.txt COPY . /code/
Python 3系のイメージを用います。
コンテナの中でcodeディレクトリを作成します。
このcodeディレクトリにrequirements.txtをコピーし、実行します。
そのrequirements.txtは以下のようになります。
Django>=2.0,< 3.0 psycopg2>3.0>=2.7,<3.0
ここまでファイルを作成した上で
sudo docker-compose run web django-admin startproject composeexample .
現在はweb imageは存在しないので、現在のディレクトリにファイルを作成してビルドを行います。
現在のディレクトリにファイルを作成するという命令はdocker-compose.ymlのbuild: .に設定してあります。
webイメージがビルドし終えたら、そのコンテナ内でdjango-admin startprojectを実行します。
(ここらへんの理解は甘いです・・・・)
次にdatabaseとアクセスを許可するipアドレスの設定を行います。
settings.pyのDATABASESとALLOWED_HOSTSのところを以下のように修正します。
省略 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', 'USER': 'postgres', 'HOST': 'db', 'PORT': 5432, } } ALLOWED_HOSTS = ['*'] 省略
最後に以下のコマンドでコンテナを立ち上げます。
docker-compose up
以下のurlにアクセスするとdjangoのページがでてきます。
参考文献
https://docs.docker.com/compose/django/