testcontainers-dotnet: Add missing function `WithDockerCompose`
Is your feature request related to a problem? Please describe. I love the approach of having a single container scenario for a test case but there are also scenarios where I’d like to spin up a whole set of containers and therefore use docker-compose as declaration.
Describe the solution you’d like
I’d like to spin up a set of containers by specifying a docker-compose.yml similar to the Java version https://www.testcontainers.org/modules/docker_compose/
Describe alternatives you’ve considered Not sure If there is one
- configuring the things as in the compose in code seems odd to me and leads to duplication of configuration and most of the times
docker-compose.ymlwill also be used to deploy the application under test this would be strange.
Additional context Also other library authors could benefit from such an approach, I happen to know that https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks is using compose and I think it would be great improvement on there development experience (since you don’ t have to remember starting the containers in advance 😉 )
Cheers & let me know what you think of the idea
About this issue
- Original URL
- State: open
- Created 5 years ago
- Reactions: 20
- Comments: 23
Thinking about the API design for this, I have a few points to raise:
Since all of the public API surface revolves around working with a single container, I propose this API for compose:
Regarding implementation - since compose is not part of the Docker Engine API, and the
docker composecommand has been part of Docker Desktop for a while now, I assume it is acceptable to use thedocker composecommand for the different compose methods (docker compose up,docker compose downetc.).The java implementation is spinning a container to run
composecommands, I assume because they could not assumedocker-composeis installed on all machines back when it was implemented. This is where I think it makes sense to diverge from their implementation, because for a long time nowcomposeis bundled with Docker Desktop.It would be nice to consider the testcontainers-java implementation. I’m not very familiar with it, but I think it is a good idea not to differentiate too much. OC, it should still be idiomatic with .NET.
Still working on this feature? Currently this is the only feature that still makes us use FluentDocker instead of TestContainers…
@SbiCA I think it would be great if you join the official Slack channel: http://slack.testcontainers.org/. Maybe, we can add the feature already in the official project? What do you think?