我是使用 Docker 和 Cake 的新手。目前我们有一个简单的 Cake 任务,它运行 DockerComposeUp() 方法,该方法接受一个 DockerComposeUpSettings 对象。docker-compose.yaml 文件包含我想要有条件地运行的服务(serviceA)的一些信息:
version: "1.0"
services:
serviceA:
image: someImage
ports:
-"000000"
-"000001"
serviceB:
image: someOtherImage
anotherProperty: somethingElse
ports:
-"111111"
我尝试将 serviceA 拆分为一个名为“docker-compose.serviceA.yaml”的单独 docker-compose 文件,并通过将以下内容添加到 DockerComposeUpSettings.ArgumentCustomization 来调用它:
if(some setting)
{
dockerComposeUpSettings.ArgumentCustomization = builder => builder.Append("-f docker-compose.yaml -f docker-compose.serviceA.yaml");
}
但是,Cake 抛出以下错误:
“未知的速记标志:'f' in -f”
作为 DockerComposeUp 方法的一部分,如何使用 Cake 合并到 docker-compose 文件?
更新
我发现 DockerComposeUpSettings 对象(继承自 DockerComposeSettings 对象)上有一个“文件”属性,您可以在其中声明配置文件。所以我添加了:
if(some flag)
{
dockerComposeSettings.Files = new[]{ "docker-compose.yaml", "docker-compose.serviceA.yaml" };
}