Warm tip: This article is reproduced from serverfault.com, please click

node.js-无法在docker-compose中使用Postgres DB

(node.js - Unable to use Postgres DB in docker-compose)

发布于 2018-06-12 10:14:20

我有一个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
    }
Questioner
Alamgir Qazi
Viewed
11
b0gusb 2018-06-12 18:50:34

如果你从另一个Docker容器连接到数据库,请在连接字符串中使用服务名称(db在你的情况下)。从错误消息看来,你的配置有问题。尝试连接到本地主机(127.0.0.1