我最近开始将自托管服务迁移到docker
。为了简化维护,我使用docker-compose
。一些容器相互依赖,另一些则相互独立。
拥有20多个容器和将近500行代码,可维护性现已下降。
是否有很好的替代方法来保存一个巨大的docker-compose
文件?
答案 0 :(得分:2)
那是一个很大的docker-compose.yml!将其分解为多个docker-compose文件。
您可以将multiple docker-compose files传递给一个docker-compose
命令。如果许多不同的容器在逻辑上分解,那么使它们更易于使用的一种方法是通过容器分组,逻辑用例分解docker-compose.yml
,或者如果您真的想要每个容器创建一个docker-compose文件服务(但您有20个文件)。
然后,您可以使用bash别名或帮助程序脚本来运行docker-compose
。
# as an alias
alias foo='docker-compose -f docker-compose.yml -f docker-compose-serviceA.yml -f docker-compose-serviceB-yml $@'
然后:
# simple docker-compose up with all docker-compose files
$ foo -d up
使用bash助手文件非常相似,但是您可以通过更直接的方式将助手脚本作为代码库的一部分进行更新:
#!/bin/bash
docker-compose -f docker-compose.yml \
-f docker-compose-serviceA.yml \
-f docker-compose-serviceB.yml \
-f docker-compose-serviceC.yml \
$@
注意:-f <file>
标志的顺序没关系很重要,但是如果您不覆盖任何服务,它可能不会对您造成伤害。无论如何要记住一些东西。
答案 1 :(得分:0)
您可以看一下kubernetes
如果您不想全力以赴,可以使用minikube
或者也许是kubernetes baked into docker on the edge channel for windows or mac,但这是beta版,因此可能不适用于生产系统