This issue is based on the changes regarding rate limiting of pulls from Docker hub.
This means that many projects are currently switching to their own image registries where the images required for e.g. CI are re-tagged and re-pushed to avoid requesting Docker hub.
Currently, some modules, like kafka for example, only allow providing the version of the image tag as parameter.
It's still possible to define a modified image using testcontainers.properties file, but this leads to it's own set of problems.
Take this example:
- A project called my-kafka-test-library defines some utilities for setting up and testing with Kafka containers.
- A project called my-pulsar-test-library defines some utilities for setting up and testing with Pulsar containers.
- Two projects called my-service-1 and my-service-2 depend on these utilities for their tests.
- The developer now wants to avoid hitting the rate limit.
** The dev cannot use testcontainers.properties in the two library projects as they will collide on the classpath.
** The dev should not define testcontainers.properties in the services projects as it causes coupling between the test library code and the configuration in the services.
** The dev should not use any hacks to change configuration at runtime
So it is clear that the best option is to provide the ability to pass the full image tag as a parameter.
This issue is based on the changes regarding rate limiting of pulls from Docker hub.
This means that many projects are currently switching to their own image registries where the images required for e.g. CI are re-tagged and re-pushed to avoid requesting Docker hub.
Currently, some modules, like
kafkafor example, only allow providing the version of the image tag as parameter.It's still possible to define a modified image using
testcontainers.propertiesfile, but this leads to it's own set of problems.Take this example:
** The dev cannot use
testcontainers.propertiesin the two library projects as they will collide on the classpath.** The dev should not define
testcontainers.propertiesin the services projects as it causes coupling between the test library code and the configuration in the services.** The dev should not use any hacks to change configuration at runtime
So it is clear that the best option is to provide the ability to pass the full image tag as a parameter.