【发布时间】:2018-11-21 16:53:55
【问题描述】:
我有一个 Node.js 应用程序并设置了 docker-compose。我正在尝试在容器中使用 Postgres DB。
这里是 docker-compose
version: "3"
services:
web:
build: .
ports:
- "3000:3000"
links:
- redis
- db
angular: # image of nginx
image: "qp-angular-nginx"
ports:
- "4200:80" # specify port forewarding
redis:
image: "redis:3"
ports:
- "6379:6379"
db:
image: "postgres:9.6"
ports:
- "5432:5432"
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
volumes:
- pgdata:/var/lib/postgresql/data
dbadmin:
image: "myimage/phppgadmin"
ports:
- "8085:80"
environment:
POSTGRES_HOST: db
POSTGRES_PORT: 5432
volumes:
pgdata:
我已经成功运行容器,甚至连接了数据库,但是在发出数据库请求时出现此错误
"stack": {
"code": "ECONNREFUSED",
"errno": "ECONNREFUSED",
"syscall": "connect",
"address": "127.0.0.1",
"port": 5432
}
【问题讨论】:
-
在尝试连接之前,可能值得尝试使用
wait-for-it或类似的帮助程序以确保数据库可用:docs.docker.com/compose/startup-order
标签: node.js postgresql docker