Docker中的ECONNREFUSED错误 - 使用谷歌云中的NodeJS和postgresql

问题描述 投票:0回答:1

我用Node.js和postgresql创建了我的反应应用程序,我部署在谷歌云中。我创建了postgres和nodejs的docker图像,我将图像上传到docker hub。从gcloud我访问那些图像。

这是我的docker-compose-production.yml文件。

version: '2.0'
services:
  postgres:
    image : mycompany/myapp:pglatest
    restart : always
    volumes:
      - ./backdata/databackups:/var/lib/postgresql/backdata
    ports:
      - "5433:5432"

  backend:
    image: mycompany/myapp:nodelatest7
    command: npm run start
    ports:
      - "5001:5000"
    depends_on:
      - postgres
    environment:
      POSTGRES_URL: postgresql://postgres:root@postgres:5432/db_mydb 
      DEBUG: hms-backend:*

当我运行命令

sudo docker-compose -f docker-compose-production.yml up --build -d

创建了2个图像。

之后我运行了tail命令

sudo docker-compose -f docker-compose-production.yml logs -t backend

我收到错误了

backend_1 | 2018-09-15T09:12:18.926001351Z REST API侦听端口5000 backend_1 | 2018-09-15T09:12:18.937246598Z错误{错误:连接ECONNREFUSED 192.168.80.2:5432 backend_1 | 2018-09-15T09:12:18.937268668Z在TCPConnectWrap.afterConnect [as oncomplete](net.js:1191:14) backend_1 | 2018-09-15T09:12:18.937280934Z错误:'ECONNREFUSED', backend_1 | 2018-09-15T09:12:18.937283960Z代码:'ECONNREFUSED', backend_1 | 2018-09-15T09:12:18.937286817Z系统调用:'connect', backend_1 | 2018-09-15T09:12:18.937289488Z地址:'192.168.80.2', backend_1 | 2018-09-15T09:12:18.937292260Z端口:5432}

如何解决这个问题呢

node.js postgresql docker docker-compose
1个回答
0
投票

对我来说你的postgres url是错误的:postgresql:// postgres:root @ postgres:5432 / db_mydb

它应该是postgresql:// postgres:root @ postgres:5433 / db_mydb自5433中的postgres“exposed”端口

嗯,我认为你应该在docker-compose中添加“container_name”

services:
  postgres:
     container_name: my_postgres  

并使用此名称作为postgres的“地址”

的PostgreSQL:// my_postgres:根@ postgres的:5433 / db_mydb

© www.soinside.com 2019 - 2024. All rights reserved.