django.db.utils.OperationalError:无法将主机名"db"转换为地址:名称无法解析。如何解决这个问题?



有人能帮我解决这个问题吗。为什么我会出现这个错误?我在.env主机和链接中有数据库,在docker中也有网络组成文件。我不想弄清楚这个问题是从哪里提出的。这是我的档案。

version: "3.9"

volumes:
dbdata:
networks:
django:
driver: bridge
services:
web:
build: 
context: .
volumes:
- .:/home/django
ports:
- "8000:8000"
command: gunicorn Django.wsgi:application --bind 0.0.0.0:8000
container_name: django_web
restart: always
env_file: .env
depends_on:
- db
links:
- db:db
networks:
- django
db:
image: postgres
volumes:
- dbdata:/var/lib/postgresql
environment:
- POSTGRES_DB=${DB_NAME}
- POSTGRES_USER=${DB_USER}
- POSTGRES_PASSWORD=${DB_PASSWORD}
ports:
- 5430:5432
networks:
- django
container_name: django_db

这是我的.env和数据库设置

DB_USER=admin
DB_NAME=test
DB_PASSWORD=admin
DB_HOST=db
DB_PORT=5432
DB_SCHEMA=public
CONN_MAX_AGE=60

问题是当您使用时:

docker compose up --build

正如docker撰写的文件所描述的:

引用
标志
--在启动容器之前构建图像

我认为问题在于你的.env声明如下:

DB_HOST=db

但是你的docker撰写的文件是这样写的:

container_name: django_db

在我看来,这些应该是一样的。

相关内容

最新更新