【问题标题】:Cannot connect django to postgres running inside docker container无法将 django 连接到在 docker 容器内运行的 postgres
【发布时间】:2021-11-14 23:39:31
【问题描述】:

我的 django 应用程序未 dockerized,但我使用 docker-compose.yml 脚本在 docker 容器内运行 postgres。在docker-compose up 之后,我可以使用 dbeaver 连接到 db,但不能使用 django 应用程序。每次我遇到错误时:

django.db.utils.OperationalError: could not translate host name "db" to address: 
Temporary failure in name resolution

文件docker-compose.yml

version: "3.9"
services:
  db:
    image: postgres:13
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - "POSTGRES_HOST_AUTH_METHOD=trust"
      - POSTGRES_USER="postgres"
      - POSTGRES_PASSWORD="postgres"
      - POSTGRES_DB="postgres"
    ports:
      - 5432:5432
volumes:
  postgres_data

Django 项目文件config/settings.py:

...
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': env.str("DB_NAME"),
        'USER': env.str("DB_USER"),
        'PASSWORD': env.str("DB_PASS"),
        'HOST': env.str("DB_HOST"),
        'PORT': env.decimal("DB_PORT")
    }
}

【问题讨论】:

    标签: django postgresql docker-compose


    【解决方案1】:

    这是某种 pipenv 错误。当我重新启动终端并再次执行pipenv shell 然后python manage.py runserver 一切正常

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 2020-06-06
      • 1970-01-01
      • 2021-11-01
      • 2020-08-27
      • 1970-01-01
      • 2021-10-01
      • 2017-06-02
      • 2020-07-31
      相关资源
      最近更新 更多