django - 无法将 django 连接到在 docker 容器内运行的 postgres
问题描述
docker-compose.yml
我的 django 应用程序没有 dockerized,但我使用脚本在 docker 容器内运行 postgres 。在docker-compose up
我可以使用 dbeaver 连接到 db 之后,但不能使用 django 应用程序。每次我遇到错误时:
django.db.utils.OperationalError: could not translate host name "db" to address:
Temporary failure in name resolution
文件docker-compose.yml
:
version: "3.9"
services:
db:
image: postgres:13
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- "POSTGRES_HOST_AUTH_METHOD=trust"
- POSTGRES_USER="postgres"
- POSTGRES_PASSWORD="postgres"
- POSTGRES_DB="postgres"
ports:
- 5432:5432
volumes:
postgres_data
Django项目文件config/settings.py
:
...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': env.str("DB_NAME"),
'USER': env.str("DB_USER"),
'PASSWORD': env.str("DB_PASS"),
'HOST': env.str("DB_HOST"),
'PORT': env.decimal("DB_PORT")
}
}
解决方案
这是某种 pipenv 错误。当我重新启动终端并pipenv shell
再次执行然后python manage.py runserver
一切正常
推荐阅读
- android - 在 WebView 自定义所有错误页面
- android - 保存视频文件或流式传输到服务器之间的 Android 性能差异
- javascript - 如何将背景颜色更改为用户在 HTML 中输入的内容
- r - R - 平均大矩阵
- reactjs - 在另一个函数中访问当前状态
- emoji - 如何使用 RegExr 在字符串中的特定短语之后提取所有 18 个字符条目的列表?
- java - 更新 Firebase 实时数据库中的值(离线) - Android
- haskell - Haskell HDBC 库:有没有一种优雅的方式在 [SqlValue] 和记录之间进行转换?
- html - 无法用鼠标选择密码字段!PHP网站问题
- postgresql - DBeaver + Postgres:调试功能打印到输出/控制台