检查是使用docker-compose运行的容器/服务

我正在使用docker-compose

up -d service_namestart service_name这样的一些命令正在返回,如果不希望运行的容器依赖于shell的状态,就像使用常规的up service_name一样,这很有用。 一个用例就是从某种连续的集成/交付服务器运行它。

但是这种运行/启动服务的方式并没有提供关于服务的实际状态的任何反馈。

up命令的Docker Compose CLI参考提到了相关选项,但是对于版本1.7.1 ,它与-d是互斥的:

 --abort-on-container-exit Stops all containers if any container was stopped. *Incompatible with -d.* 

我可以以某种方式手动检查容器确实工作,并没有因为一些错误而停止?

至于版本1.7.1 ,没有内置的这样的命令。

相反, exec可以以类似的方式使用。

当你运行它有一些容器的服务,它将运行正常:

 ~/apperture-science $ docker-compose exec chell echo 'Still alive!' Still alive! ~/apperture-science $ echo $? 0 

但是当你为没有运行服务容器的服务运行它时,它会显示错误:

 ~/apperture-science $ docker-compose exec glados echo "Still alive!" ERROR: No container found for apperture-science-glados_1 ~/apperture-science $ echo $? 1 

所以,它可以用来检查,是否有任何“活”的容器给定的服务。