我有一个带有NodeJS应用程序的容器,它必须链接到另一个带有Postgres数据库的容器。我的docker-compose.yml
是:
version: "3"
services:
postgres:
image: "postgres:9.5.6-alpine"
container_name: postgres
volumes:
- /shared_folder/postgresql:/var/lib/postgresql
ports:
- "5432:5432"
web:
build: .
container_name: web
ports:
- "3000:3000"
links:
- postgres
depends_on:
- postgres
command: sh /usr/home/freebsd/wait-for-command.sh -c 'nc -z postgres 5432'
command: sh start.sh
在postgres容器上有一个名为“bucket”的数据库,由用户“user”拥有,密码为“password”。
当我键入docker-compose up,并尝试链接容器时,来自控制台的此消息后:
[INFO] console - postgres://user:password@localhost:5432/bucket
我收到此错误:
Error: Connection terminated
at [object Object].<anonymous>
/node_modules/massive/node_modules/deasync/index.js:46
中的
问题出在哪里?
答案 0 :(得分:1)
您定义command
两次,这意味着您的wait-for-command.sh
被sh start.sh
覆盖,并且可能在PostgreSQL准备接受连接之前运行。