DockerComposeContainer

DockerComposeContainer

是否有可能以某种方式仅在Testcontainers DockerComposeContainer中运行特定服务?

使用the official documentation中的示例,我们可以仅启动Redis吗?对我来说,所有服务始终都在启动(无论是否使用withExposedService方法都没有关系)。

我的意思是这样的方法:

new DockerComposeContainer(new File("src/test/resources/compose-test.yml"))
        .composeUpService("redis_1")

最佳答案

DockerComposeContainer的源代码看来,答案是否定的,但这仅是因为 DockerComposeContainer.runWithCompose 是私有(private)的。

从在 DockerComposeContainer.createServices 等其他地方使用该方法来看,似乎只需要公开runWithCompose,就可以设置完整的docker-compose命令集,并允许以下操作:

new DockerComposeContainer(new File("src/test/resources/compose-test.yml"))
      .runWithCompose("run -d redis");

(和其他 docker-compose run options)。

在github中,这是一个非常活跃的项目,因此您可以通过提交问题或更好的请求请求来吸引人们的注意力。

07-24 20:44