NodeJS:无法从另一个容器

时间:2017-05-12 10:33:37

标签: node.js postgresql docker

我有一个带有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

中的

问题出在哪里?

1 个答案:

答案 0 :(得分:1)

您定义command两次,这意味着您的wait-for-command.shsh start.sh覆盖,并且可能在PostgreSQL准备接受连接之前运行。