LoginSignup
0
0

More than 3 years have passed since last update.

docker-compose+Django+Postgresql+Pycharmで開発環境構築時に躓いた事とその対処

Posted at

この記事について

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ページにアクセスできます。

参考文献

この記事は以下の情報を参考及び一部引用して執筆しました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0