gpt4 book ai didi

Django docker - 无法将主机名 "db"转换为地址 : nodename nor servname provided, 或未知

转载 作者:行者123 更新时间:2023-12-04 20:27:37 31 4
gpt4 key购买 nike

我对 Django 和 Docker 比较陌生,正在学习构建迷你应用程序的教程。但是,我遇到了以下错误:
django.db.utils.OperationalError: could not translate host name "db" to address: nodename nor servname provided, or not known
我的 docker-compose 文件如下所示:

 version: '3'
services:
db:
image: 'postgres'
ports:
- '5432'
core:
build:
context: .
dockerfile: Dockerfile
command: python3 manage.py runserver 0.0.0.0:8000
ports:
- '8000:8000'
volumes:
- .:/code
depends_on:
- db
links:
- db:db

我的 settings.py 文件包含数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'postgres',
'USER': 'postgres',
'HOST': 'db',
'PORT': 5432,
}
}

我看过帖子 herehere然而,两者都没有解决这个问题。

希望得到一些指导。谢谢。

最佳答案

因此,您正试图从另一个容器访问在一个容器中运行的数据库?如果是 - 以下内容可能会有所帮助,至少在我遇到类似问题时对我有所帮助。

除了撰写文件中的链接之外,尝试定义网络配置,创建一个具有某个名称的网络并在两个服务中定义它。如所描述 here ,作为 links 上的码头配置建议这样做。

你的情况是这样的:

version: '3'
services:
db:
image: 'postgres'
ports:
- '5432'
networks:
some_network:
core:
build:
context: .
dockerfile: Dockerfile
command: python3 manage.py runserver 0.0.0.0:8000
ports:
- '8000:8000'
volumes:
- .:/code
depends_on:
- db
links:
- db:db
networks:
some_network:
networks:
some_network:

它帮助我解析主机名以连接到数据库。

关于Django docker - 无法将主机名 "db"转换为地址 : nodename nor servname provided, 或未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55081675/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com