当前位置: 首页 > 知识库问答 >
问题:

Docker和POSTGRESQL

汲时铭
2023-03-14

我在Django上使用Docker创建了一个新项目。当我编写连接到Postgres的设置时,它有一些错误-(connn=_connect(dsn,connection_factory=connection_factory,**kwasync)django.db.utils.OperationalError:无法将主机名“DB”转换为地址:提供了nodename或servname,或未知)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'postgres',
        'USER': 'postgres',
        'PASSWORD': 'postgres',
        'HOST': 'db',
        'PORT': 5432
    }
}
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"
# 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的信息。更改了代码。但是在这种情况下没有什么可以帮助我。

共有1个答案

陆琦
2023-03-14

必须在以下位置指定主机名:

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

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

 类似资料:
  • 我正试图从Docker容器中运行Liquibase。我找到了run语句,但当我运行时,它几乎立即退出,因此容器不再运行。这是我正在使用的命令。谢谢 docker运行liquibase/liquibase--驱动程序=组织。postgresql。驱动程序——类路径=/usr/share/java/postgresql。jar-url=“jdbc:postgresql://host.docker.in

  • 对于开发和部署 Yii 应用程序可以使用 Docker 容器运行。容器就像一个轻量级的独立虚拟机,它将其服务映射到主机的端口,即在端口 80 上的容器中的Web服务器在您的(本地)主机上的端口 8888 上可用。 容器可以解决许多问题,例如在开发人员计算机和服务器上具有相同的软件版本,在开发时快速部署或模拟多服务器体系结构。 您可以在 docker.com 上阅读有关Docker容器的更多信息。

  • 问题内容: 我看到我不是第一个提出这个问题的人,但是对此没有明确的答案: 在Python开发中如何在docker-composer中使用pdb? 当您向Google叔叔询问有关您的很棒的docker-composer示例和教程时,并且我有一个可以正常工作的环境- 我可以运行,并且拥有一个简洁的开发人员环境, 但是PDB无法正常工作 (非常可悲)。 我可以通过运行来解决问题,但是然后可以从主机通过h

  • 问题内容: 我正在尝试集成两个应用程序。目前,我有一个包含两个服务的docker-compose文件和另一个docker- run命令以启动另一个服务。根据下面的配置,我希望将互连在端口3030上运行的OHIF Viewer和运行在8042上的Orthanc。我的意思是,如果我在Orthanc中上传图片,则应该可以在OHIF查看器中看到它们。目前,我可以在各自的端口中同时查看Orthanc和OHI

  • 我想做一个完全dockerizedDrupal安装。我的第一步是让容器运行Nginx和php5-fpm,两者都是基于Debian的。我在CoreOS alpha频道(使用数字海洋) 我的DockerFile如下所示: Nginx: 这个容器构建并运行良好。我在我的服务器ip上看到默认的Nginx页面。 php5-fpm: 这个容器也没有任何问题,并且在启动时保持运行。 我首先使用以下命令启动php

  • 问题内容: 并且似乎正在与同一个dockerFile进行交互,这两个工具之间有什么区别? 问题答案: 在一个码头工人的发动机管理单个容器时,CLI使用。这是访问docker daemon api的客户端命令行。 该CLI可以用于管理多容器应用程序。它还会将您在cli 上输入的许多选项移到文件中,以方便重用。它在与所使用的同一docker api上充当前端“脚本” ,因此您可以使用命令和许多shel