【发布时间】:2019-07-31 13:49:10
【问题描述】:
我对 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,
}
}
希望得到一些指导。谢谢。
【问题讨论】:
-
你能保持 postgres 容器运行并只重启 django 容器并告诉我你是否仍然遇到同样的错误吗?
-
感谢您的评论穆斯塔法。抱歉,我对 Docker 还是很陌生,所以可能需要帮助。我已经停止了码头工人。我怎样才能让 Postgres 容器运行?谢谢。
-
docker-compose restart core这将在没有数据库的情况下重新启动应用程序,因此请确保首先运行数据库然后执行命令 -
谢谢。不幸的是,问题仍然存在。