docker-compose有条件地构建容器

时间:2018-01-19 18:23:49

标签: docker docker-compose

我们的团队是运营微服务生态系统的新手,我很好奇如何从compose或其他可变的脚本中有条件地加载docker容器。

一个用例示例。 做前端开发依赖于一些不同的服务。我们将标记那些DockerA / D

依赖矩阵

Feature1 - DockerA

Feature2 - DockerA和DockerB

Feature3 - DockerA和DockerD

我希望能够运行类似以下的内容

docker-compose --feature1

magic-script -service DockerA -service DockerB

基本上,我想运行命令来有条件地启动我需要的API。

我已经知道使用各种模拟服务器进行UI开发,但是想要避免使用它们。

关于如何配置这个的想法?

1 个答案:

答案 0 :(得分:5)

您可以在创建它们之后停止所有服务,然后逐个选择性地启动它们。 E.g:

version: "3"

services:
    web1:
        image: nginx
        ports:
            - "80:80"
    web2:
        image: nginx
        ports:
            - "8080:80"
docker-compose up -d
    Creating network "composenginx_default" with the default driver
    Creating composenginx_web2_1 ... done
    Creating composenginx_web1_1 ... done
docker-compose stop
    Stopping composenginx_web1_1 ... done
    Stopping composenginx_web2_1 ... done

现在可以使用例如

开始任何服务
docker-compose start web2
    Starting web2 ... done

此外,使用链接服务,可以使用scale命令来更改正在运行的服务的数量(可以在不重新启动的情况下添加容器)。