我用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}
如何解决这个问题呢
对我来说你的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