Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 在docker组成后立即关闭Postgres?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在这里使用 postgresql imagenode official image
我的docker-compose.yml文件看起来像

version: '2'
services:
  POSTGRes:
    restart: always
    image: sameersbn/POSTGResql:9.6-2
    ports:
      - "5432:5432"
    environment:
      - DB_USER=shorturl
      - DB_PASS=shorturl
      - db_name=shorturl
  web:
    build: .
    ports:
     - "4000:4000"
    volumes:
     - .:/shortlr
    depends_on:
     - POSTGRes
    command: ["./wait-for-it.sh","POSTGRes:5432","--","npm","start"]

当我运行docker-compose时,我的日志看起来像

shubham@shuboy2014:~/shortlr$docker-compose up
RecreaTing shortlr_POSTGRes_1 ... 
RecreaTing shortlr_POSTGRes_1 ... done
RecreaTing shortlr_web_1 ... 
RecreaTing shortlr_web_1 ... done
Attaching to shortlr_POSTGRes_1,shortlr_web_1
POSTGRes_1  | Initializing datadir...
web_1       | wait-for-it.sh: waiTing 15 seconds for Postgres:5432
POSTGRes_1  | Initializing certdir...
POSTGRes_1  | Initializing logdir...
POSTGRes_1  | Initializing rundir...
POSTGRes_1  | SetTing resolv.conf ACLs...
POSTGRes_1  | CreaTing database user: shorturl
POSTGRes_1  | CreaTing database: shorturl...
POSTGRes_1  | ‣ GranTing access to shorturl user...
POSTGRes_1  | StarTing POSTGResql 9.6...
POSTGRes_1  | LOG:  database system was shut down at 2017-04-28 14:23:20 UTC
POSTGRes_1  | LOG:  MultiXact member wraparound protections are Now enabled
POSTGRes_1  | LOG:  autoVACUUM launcher started
POSTGRes_1  | LOG:  database system is ready to accept connections
POSTGRes_1  | LOG:  incomplete startup packet
web_1       | wait-for-it.sh: POSTGRes:5432 is available after 2 seconds
web_1       | npm info it worked if it ends with ok
web_1       | npm info using npm@4.2.0
web_1       | npm info using node@v7.9.0
web_1       | npm info lifecycle shortlr@0.0.5~prestart: shortlr@0.0.5
web_1       | npm info lifecycle shortlr@0.0.5~start: shortlr@0.0.5
web_1       | 
web_1       | > shortlr@0.0.5 start /shortlr
web_1       | > node server.js
web_1       | 
web_1       | Listening on http://localhost:4000/
web_1       | Unhandled rejection SequelizeBaseError: connect ECONNREFUSED 127.0.0.1:5432
web_1       |     at /shortlr/node_modules/sequelize/lib/dialects/POSTGRes/connection-manager.js:98:20
web_1       |     at Connection.<anonymous> (/shortlr/node_modules/pg/lib/client.js:186:5)
web_1       |     at emitOne (events.js:96:13)
web_1       |     at Connection.emit (events.js:191:7)
web_1       |     at Socket.<anonymous> (/shortlr/node_modules/pg/lib/connection.js:86:10)
web_1       |     at emitOne (events.js:96:13)
web_1       |     at Socket.emit (events.js:191:7)
web_1       |     at emitErrorNT (net.js:1283:8)
web_1       |     at _combinedTickCallBACk (internal/process/next_tick.js:80:11)
web_1       |     at process._tickCallBACk (internal/process/next_tick.js:104:9)

当我运行docker-compose时,POSTGResql立即关闭,任何有用的答案将不胜感激.

shubham@shuboy2014:~/shortlr$docker-compose ps
       Name                     Command               State           Ports          
------------------------------------------------------------------------------------
shortlr_POSTGRes_1   /sbin/entrypoint.sh              Up      0.0.0.0:5432->5432/tcp 
shortlr_web_1        ./wait-for-it.sh POSTGRes: ...   Up      0.0.0.0:4000->4000/tcp

解决方法

在您的网站和POSTGRes图片之间添加一个链接,如下所示:

version: '2'
services:
  POSTGRes:
    restart: always
    image: sameersbn/POSTGResql:9.6-2
    ports:
      - "5432:5432"
    environment:
      - DB_USER=shorturl
      - DB_PASS=shorturl
      - db_name=shorturl
  web:
    build: .
    ports:
     - "4000:4000"
    volumes:
     - .:/shortlr
    depends_on:
     - POSTGRes
    links:
     - POSTGRes
    command: ["./wait-for-it.sh","start"]

然您应该使用网络,因为链接是遗留选项.阅读网络here上的文档

大佬总结

以上是大佬教程为你收集整理的node.js – 在docker组成后立即关闭Postgres?全部内容,希望文章能够帮你解决node.js – 在docker组成后立即关闭Postgres?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。