在Docker Compose中,我可以让服务退出
问题描述:
我试图使用Docker Compose构建一系列组成Web服务器及其组件的服务,然后让它们活着。但是,我想要的一些“服务”只是创建“卷”来填充诸如node_modules或bower_components之类的目录。这使我能够更好地控制事物的版本。在Docker Compose中,我可以让服务退出
我找不到这些服务如果退出(退出(0))会发生什么情况。其余的服务是否继续成功运行?
我“可能”也许有一个小任务,只是等待像这样的SIGINT: -
(function() {
'use strict';
process.on('SIGINT', function() {
process.exit(0);
});
})();
但是这似乎有点像一个忽悠的。
答
如果你的服务刚刚完成,为什么不去让它们挂起,直到你手动杀死它们,而不是通过docker-compose logs -f ${service}
/使用它们特定的容器的stdout/stderr来监控它们? Docker-compose流登录到特定的容器绑定日志文件中,并且您可以通过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
但使用/运行的NPM脚本是这样的事情更方便的方式使用它 - 在我oppinion