我正在尝试使用Docker Compose构建一系列服务,这些服务构成了Web服务器及其组件,然后使它们生效。但是,我想要的一些“服务”只是创建“卷”来填充诸如node_modules或bower_components之类的目录。这使我可以更好地控制事物的版本。
我不知道的是这些服务如果退出(使用exit(0))会发生什么。其余服务是否继续成功运行。
我“可能”可能有一个小任务,就像这样等待sigint: -
(function() {
'use strict';
process.on('SIGINT', function() {
process.exit(0);
});
})();
但这似乎有点像软糖。
答案 0 :(得分:1)
如果您的服务刚刚完成某项工作而死,为什么不让它们挂起直到您手动杀死它们,只是不通过docker-compose logs -f ${service}
/使用特定容器的stdout / stderr监控它们?
Docker组合流记录到特定的容器绑定日志文件,您可以通过docker-compose cli,docker API,可读文件流和其他内容访问其数据。虽然大多数人可能会因你的情况而过度使用 - 使用docker-compose logs -f
是获取容器特定活动报告的非常方便的方法。
如果你真的想让它们保持活力,你可以创建npm脚本
(通过package.json
)将在您从特定文件中写入时附加信号事件处理程序。您可以将此类命令添加到服务command
command: sh -c 'do your stuff; npm run wait-signal-server'
你可以使用普通的js文件,只需通过node file.js
使用它,但使用/ running作为npm脚本对于这些事情来说更方便 - 在我的观点中