在Docker Compose中我可以提供服务吗?

时间:2017-03-01 22:24:41

标签: docker-compose

我正在尝试使用Docker Compose构建一系列服务,这些服务构成了Web服务器及其组件,然后使它们生效。但是,我想要的一些“服务”只是创建“卷”来填充诸如node_modules或bower_components之类的目录。这使我可以更好地控制事物的版本。

我不知道的是这些服务如果退出(使用exit(0))会发生什么。其余服务是否继续成功运行。

我“可能”可能有一个小任务,就像这样等待sigint: -

(function() {
  'use strict';
  process.on('SIGINT', function() {
    process.exit(0);    
  });
})();

但这似乎有点像软糖。

1 个答案:

答案 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脚本对于这些事情来说更方便 - 在我的观点中