#この記事について
Webアプリの開発環境構築にあたり、docker-compose up 時とPycharmでrunする時に躓いたので、同じ悩みを抱えている人は、参考にしていただければと思います。
##環境
OS : Windows10 pro
##チュートリアルでのDockerfileとdocker-compose.yml等
####Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /code
WORKDIR /code
ADD requirements.txt /code/
RUN pip install -r requirements.txt
ADD . /code/
####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
####requirements.txt
Django>=1.8,<2.0
psycopg2
上記のファイルを作成後、以下のコマンドでcomposeexampleプロジェクトを作成します。
docker-compose run web django-admin.py startproject composeexample .
プロジェクトのsettings.pyを以下のように編集します。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}
そしてdocker-compose upをすると、passwordがどうたらこうたらとエラーを吐かれます。
##修正後
先に申し上げておくと、Dockerfileとdocker-compose.ymlは編集していません。
settings.pyのみ編集します。
####settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'PASSWORD': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}
これで、runを行い、http://localhost:8000にアクセスすることで、Django の Welcome ページを確認できます。
##問題のPycharmでの実行方法
Pycharmの実行/デバッグ構成画面で、適当な名前の実行構成を作成します。(ex: runserverなど)
ホスト欄に「0.0.0.0」と入力します。
このままだと、ブラウザーの実行欄が「http://0.0.0.0:8000」となりますが、この状態で実行して、urlをクリックしても正常にアクセスできません。
なので、ブラウザーの実行チェックボックスに✔を入れ、入力欄を「http://localhost:8000」と変更します。
これで、実行後のurlをクリックすると正常にwelcomeページにアクセスできます。
##参考文献
この記事は以下の情報を参考及び一部引用して執筆しました。