docker-compose有条件地构建容器

Mee*_*ver 2 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开发,但是想要避免它们.

有关如何配置这个的任何想法?

Snp*_*nps 5

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

version: "3"

services:
    web1:
        image: nginx
        ports:
            - "80:80"
    web2:
        image: nginx
        ports:
            - "8080:80"
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)

现在任何服务都可以使用,例如,

docker-compose start web2
    Starting web2 ... done
Run Code Online (Sandbox Code Playgroud)

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