容器退出的时候没有收到kill 信号
2019-07-15 本文已影响0人
Shaman
解决node 程序退出时候没有注销Eureka 的问题
现象:
升级服务或者缩容服务的时候,容器关闭的同时未在Eureka 上注销, 会导致出现大量错误请求。
原因:
容器退出的时候进程号为 1 的进程会收到 stop 的信号,从而程序自己可以实现优雅的退出,完成一系列收尾工作,在这里优雅的退出包含了从Eureka 中注销掉当前实例。
如果用Dockerfile 里面 写的是 CMD [“npm”, "start"] 则node 进程无法接受到这个信号
解决办法:
改为 CMD [“node”, "app.js"]
或者