こんにちは、みるちゃ(@milcha_on)です!!
仕事でもDockerを使用して開発を進めていたこともあったのですが、自分で構築した事はなく、今回が1からの環境構築になります。
前々から触ってみたかったんだけど、忙しくて触る機会がなく、かなり遅くなってしまいました(泣)
今までDjangoもSQLiteを利用していて、そこまで設定関係もいじっていませんでしたが、今回はPostgreSQLをDocker上で構築して利用することにしました。
DBのアクセス情報などを設定して、
python manage.py runserver
を実行すると、
django.db.utils.OperationalError: could not translate host name "DB_HOST" to address: Name or service not known
このエラーが出ました。
めちゃくちゃ時間かかったけど、よくよく考えたら触ってるのはDocker上の開発環境なのでcompose.ymlのDB設定もDB_HOST=localhostにしないといけないんですね。
service:
backend:
environment:
- ENVIRONMENT=${ENVIRONMENT}
- POSTGRES_DB=${POSTGRES_DB}
- POSTGRES_USER=${POSTGRES_USER}
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
- DB_HOST=${DB_HOST} #この部分にlocalhostにする
上記はenvファイルから読み込んでいるため、DB_HOST=localhostにすれば問題なくDjangoサーバが起動します。
超初歩的エラーだったかもしれません笑
Dockerを触り始めた方などの解決策になればいいなと思います。