Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django Docker与POSTGRESQL_Django_Postgresql_Docker_Django Postgresql - Fatal编程技术网

Django Docker与POSTGRESQL

Django Docker与POSTGRESQL,django,postgresql,docker,django-postgresql,Django,Postgresql,Docker,Django Postgresql,我使用Django上的Docker创建新项目。当我写连接到Postgres的设置时,它有一些错误-conn=\u connectdsn,connection\u factory=connection\u factory,**kwasync django.db.utils.OperationalError:无法将主机名db转换为地址:提供了nodename或servname,或者未知 这是我在项目中的代码: 设置.py DATABASES = { 'default': {

我使用Django上的Docker创建新项目。当我写连接到Postgres的设置时,它有一些错误-conn=\u connectdsn,connection\u factory=connection\u factory,**kwasync django.db.utils.OperationalError:无法将主机名db转换为地址:提供了nodename或servname,或者未知

这是我在项目中的代码: 设置.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': 5432
    }
}
docker-compose.yml

version: '3.7'
services:
  web:
    build: .
    command: python /code/manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - 8000:8000
    depends_on:

      - db


  db:

      image: postgres:11
      environment:
        POSTGRES_DB: "db"
        POSTGRES_HOST_AUTH_METHOD: "trust"
和Dockerfile:

# Pull base image
FROM python:3.7
# Set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# Set work directory
WORKDIR /code
# Install dependencies

COPY Pipfile Pipfile.lock /code/
RUN pip install pipenv && pipenv install --system
# Copy project
COPY . /code/
RUN pip install psycopg2-binary

请帮助解决此问题。我阅读了大量有关stackoverflow的信息。更改了代码。但在这种情况下没有任何帮助。

您必须在以下内容中指定主机名:

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

否则,它将尝试连接到名为db的主机。

在数据库设置中签出名称