diadia

興味があることをやってみる。自分のメモを残しておきます。

DjangoをDockerのドキュメントを見て環境構築

Docker自体はqiitaの記事を見て環境構築したことがあるが、ドキュメントが存在し、それ通りにやったら案外かんたんにできてしまったのでメモ。 引っかかったところはsettings.pyのデータベースのセッティングだったのでそこを中心にメモしておく。

ドキュメント;

クィックスタート: Compose と Django — Docker-docs-ja 19.03 ドキュメント

これ通りやると、動かない。データベースの接続にはpassword等の値とsettings.pyの設定値を対応させるためにdocker-compose.ymlにenviriionmentを定める。

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'HOST': 'db',
        'PORT': 5432,
        'PASSWORD': 'postgres',
    }
}

DATABASEの名前はpostgres, userはpostgres, passwordはpostgres。これを起動するコンテナに設定しないとdbに接続できなくてエラーが出てしまう。

// dokcer-compose.yml
version: "3"

services:
  db:
    image: postgres
    ports:
      - "5432"
    environment:
      - POSTGRES_DB=postgres
      - POSTGRES_USER=postgres
      - POSTGRES_PASSWORD=postgres

  web:
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - "8000:8000"
    depends_on:
      - db