是否有可能以某种方式仅在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中,这是一个非常活跃的项目,因此您可以通过提交问题或更好的请求请求来吸引人们的注意力。