【发布时间】:2019-06-12 21:32:03
【问题描述】:
我正在创建一个删除 docker 服务的 bash 脚本。 我有以下 docker-compose.yml 文件:
version: '2'
services:
service_1:
image: vendor/some_image
service_2:
image: vendor/some_image
volumes:
- ../service_2/www:/var/www
service_3:
image: vendor/some_image
volumes:
- ../service_3/www:/var/www
- ../service_3/tests:/test
我想从这个文件中删除一些服务(例如 service_2)来得到这个:
version: '2'
services:
service_1:
image: vendor/some_image
service_3:
image: vendor/some_image
volumes:
- ../service_3/www:/var/www
- ../service_3/tests:/test
我该怎么做? docker-compose 有这个命令吗?
也许我可以使用sed 或awk 来做到这一点?问题是我不能使用第三方软件,因为执行我的 bash 脚本的环境可能没有它。
更新:
docker-compose.yml 文件有很多服务 (>50)。所有服务都应该随时启动。但有时某些服务不再需要。我编写了永远删除服务的脚本(停止容器、清除配置、删除源文件、删除数据库等)。服务删除过程的最后一步是在docker-compose.yml 中删除它,因为没有必要保留它。
【问题讨论】:
-
这是一个 X-Y 问题,我认为:docker-compose 文件是如何在其中包含冗余服务的?是什么阻止您编写只会启动您需要的服务的脚本(或 make 文件)? (runnign
docker-compose up service_1 service_3将跳过service_2)...请详细说明您为什么需要它,并向我们展示您的尝试 -
@EliasVanOotegem 谢谢,我更新了问题
标签: bash docker-compose