node.js - Docker compose,从另一个容器访问 Postgres 容器
问题描述
我有一个非常简单的设置,一个容器中的 Web 应用程序和另一个容器中运行的 Postgres 服务。
我需要连接到 Postgres 容器并认为PGHOST="db"
会指向该容器..?
但我一直Error: getaddrinfo ENOTFOUND "db" at GetAddrInfoReqWrap.onlookup
认为我读的是;找不到“db”主机...
我在这里想念什么?
version: "3.9"
services:
web:
build: .
ports:
- "8081:3011"
links:
- db
environment:
- PGHOST="db"
- PGDATABASE="testdb"
- PGUSER="postgres"
- PGPASSWORD="postgres"
db:
image: postgres
ports:
- "5432:5432"
volumes:
- /usr/local/var/postgresql@13
解决方案
试试这个配置。传递环境变量时不需要引号。最好在depends_on
此处使用以确保在您的应用程序启动之前 DB 已启动并运行。
version: "3.9"
services:
web:
build: .
ports:
- "8081:3011"
depends_on:
- db
environment:
- PGHOST=db
- PGDATABASE=testdb
- PGUSER=postgres
- PGPASSWORD=postgres
db:
image: postgres
ports:
- "5432:5432"
volumes:
- /usr/local/var/postgresql@13
推荐阅读
- vba - 从 .txt 导入中删除页眉和页脚
- angular - Angular CLI - 检测库更改以重建消费应用程序
- android - 如何使用可能的待处理意图从服务导航到导航片段?
- angular - 如何在 HTML 字符串中使用 routerLink?
- css - 如何更改primefaces日历中的按钮名称
- html - 我如何向客户提供包含他们的打印输入数据的表格?
- node.js - 你如何用 Node.js 解释 Http 错误消息的奇怪行为
- python - 我应该如何使用 python 和 BS4 从网页中正确提取和解析主题数据?
- javascript - Angular如何在表单提交上获取按钮元素
- python - 列表中的列表组合