在Docker Compose中,我可以让服务退出

在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