What's Changed
1.16.1 inadvertently introduced a race condition. This bug can potentially cause unstable builds in some environments, manifesting as port wait timeouts at container startup. We recommend upgrading to 1.16.2 or higher.
Testcontainers 1.16.1 has been released! ๐
This release brings a lot of eagerly awaited new features and fixes, such as:
๐ฎ Better Oracle Database support
Thanks to the engagement of the community and @gvenzl's new Docker images for Oracle Database Express Edition we were able to update our OracleContainer
module to ensure its compatibility with a wide range of Oracle XE versions.
And at the same time, thanks to the new images, we were able to re-integrate the Oracle module into our CI. This means we can verify compatibility for using Testcontainers with Oracle Database going forward.
โ๏ธ New Azure Cosmos DB module
With the new Azure Comos DB module we finally added Azure to our list of cloud service testing facilities.
It is based on Microsoft's Azure Cosmos DB-Emulator and provides you with a way to do your integration testing without the need for an actual Azure service.
public CosmosDBEmulatorContainer emulator = new CosmosDBEmulatorContainer(
DockerImageName.parse("mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:latest")
);
Please check out the module docs to learn how to use it for your integration testing needs.
โด Host port access for containers
For further improving the developer experience of our users, we added a new API to make hosts ports accessible to containers:
container.withAccessToHost(true)
You still need to use exposeHostPorts
, as per the docs, but this can now be done after the container has started, thereby allowing new usage patterns in your tests.
๐ช Faster Cassandra startup
By making clever use of the configuration settings available in Cassandra, CassandraContainer
will now start up to 3 times faster.
It is now also configured to be less resource hungry out of the box.
โจ Better startup performance for all containers
We found a couple of ways to improve the container startup performance for our users, no matter the Testcontainers module you use.
This comes through some internal changes with regards to how Testcontainers checks for open ports during container startup and will shave up to a couple of seconds from your test suite.
We are grateful for the ongoing support of our community and users and thank each of our awesome contributors!
๐ Features & Enhancements
- Oracle Database: Update
OracleContainer
and re-activate on CI (#4298) @kiview & (#4402) @KyleAure - Azure Cosmos DB: Introduce CosmosDBEmulatorContainer (#4303) @okohub
- Host Port Access: Provide an API to force access to the host (#4584) @bsideup
- Cassandra: Tune Cassandra options for faster startup (#4309) @bsideup
- Performance: Perform container startup port checks in parallel (#4463) @bsideup
- Performance: Retry internal port checking in the same exec (#4460) @bsideup
- OrientDB: Use log wait strategy for more reliable readiness detection (#4471) @rnorth
- Fix flaky kafka cluster example (#4549) @rnorth
- Give EnvironmentAndSystemPropertyClientProviderStrategy the highest priority (#4472) @kiview
- Avoid overriding of files copied to container using subsequent
withCopyFileToContainer
(#2957) @findepi - Make TimescaleDB available with JDBC syntax (#3891) @raynigon
- Refactor JDBC URL parsing to support different Oracle URLs (#4476) @rnorth
- Allow to disable configuration of
EnvironmentAndSystemPropertyClientProviderStrategy
through Testcontainers (#4387) @kiview - Shorten fallback to another strategy (#4386) @pioorg
- Update Kafka config dynamically (#4316) @bsideup
- Disable Chrome's GPU support in
BrowserWebDriverContainer
(#4315) @kiview
๐ Bug Fixes
- Prevent Compose image pre-fetching from pulling all tags when tag is absent (#4538) @rnorth
- Randomize naming for createVolumeDirectory method (#4195) @johnathana
- Perform distinct/applicable filtering after identifying configured and available Docker client strategies (#4467) @bsideup
- Use POSIX mode for large numbers in tar archives (#4384) (#4388) @schmidt-galen-heb
๐ Documentation
- Update GitLab CI docs: Add
--tls=false
to docker-in-docker to avoid startup delays (#4573) @ulrichwinter - Document Dependabot merge process (#4556) @kiview
- Add togglz as user (#4484) @bennetelli
- Add Alkira as user (#4370) @sankee168
- Add Elastic as user (#4369) @mdelapenya
- Update RELEASING.md (#4295) @kiview
๐งน Housekeeping
- Remove unused
@ClassRule
container inKafkaContainerTest
and usecp-kafka:6.2.1
as default (#4564) @kiview - Remove
httpclient5_test
(#4562) @bsideup - Temporarily disable Thundra on master branch (#4570) @rnorth
- Enable
JUnitPlatform
for Spock tests (#4568) @kiview - Skip japicmp for new modules (#4569) @rnorth
- Fix
AuthenticatedImagePullTest
(#4560) @bsideup - Switch from AdoptOpenJDK to Temurin and latest JDK 8. (#4537) @pioorg
- Fix dangling constructor reference in deprecation note (#4443) @JarvisCraft
- Tidy up core's build file (#4207) @bsideup
- couchbase: add debug-level phase timings. (#4466) @daschl
- Fix
CmdModifierTest#testMemoryLimitModified
in cgroup2 environment. (#4375) @cac03 - Add Thundra Foresight Integration to the CI Build (#4313) @rwxdash
- Add japicmp to every module (#4364) @bsideup
- Fix failing
PublicBinaryAPITest
forDynamicPollInterval
(#4353) @kiview
๐ฆ Dependency updates
- Upgrade ryuk image to 0.3.3 (#4581) @rnorth
- Upgrade ryuk image to 0.3.2 (#4359) @rnorth
- Update Gradle Wrapper to 7.2 (#4379) @github-actions
- Update JUnit 4.12 to 4.13.2. (#4167) @michael-simons
- Update to
docker-java
3.2.12 (#4459) @bsideup
Click to expand...
- Bump aws-java-sdk-sqs from 1.12.62 to 1.12.82 in /modules/localstack (#4558) @dependabot
- Bump aws-java-sdk-logs from 1.12.60 to 1.12.82 in /modules/localstack (#4557) @dependabot
- Bump actions/setup-java from 2.3.0 to 2.3.1 (#4536) @dependabot
- Bump junit-jupiter-api from 5.7.2 to 5.8.1 in /modules/junit-jupiter (#4530) @dependabot
- Bump postgresql from 42.2.23 to 42.2.24 in /examples (#4528) @dependabot
- Bump elasticsearch-rest-client from 7.14.1 to 7.15.0 in /modules/elasticsearch (#4520) @dependabot
- Bump solr-solrj from 8.9.0 to 8.10.0 in /examples (#4519) @dependabot
- Bump assertj-core from 3.20.2 to 3.21.0 in /examples (#4506) @dependabot
- Bump org.jetbrains.kotlin.jvm from 1.5.30 to 1.5.31 in /examples (#4508) @dependabot
- Bump assertj-core from 3.20.2 to 3.21.0 in /modules/vault (#4510) @dependabot
- Bump assertj-core from 3.20.2 to 3.21.0 in /modules/database-commons (#4501) @dependabot
- Bump assertj-core from 3.20.2 to 3.21.0 in /modules/kafka (#4502) @dependabot
- Bump r2dbc-mssql from 0.8.6.RELEASE to 0.8.7.RELEASE in /modules/mssqlserver (#4497) @dependabot
- Bump junit-jupiter-params from 5.7.2 to 5.8.1 in /modules/junit-jupiter (#4500) @dependabot
- Bump s3 from 2.17.34 to 2.17.52 in /modules/localstack (#4547) @dependabot
- Bump aws-java-sdk-logs from 1.12.60 to 1.12.80 in /modules/localstack (#4543) @dependabot
- Bump aws-java-sdk-s3 from 1.12.62 to 1.12.80 in /modules/localstack (#4541) @dependabot
- Bump aws-java-sdk-sqs from 1.12.62 to 1.12.80 in /modules/localstack (#4540) @dependabot
- Bump kafka-clients from 2.8.0 to 3.0.0 in /examples (#4535) @dependabot
- Bump okhttp from 4.9.1 to 4.9.2 in /examples (#4534) @dependabot
- Bump logback-classic from 1.2.5 to 1.2.6 in /examples (#4533) @dependabot
- Bump org.springframework.boot from 2.5.4 to 2.5.5 in /examples (#4532) @dependabot
- Bump postgresql from 42.2.23 to 42.2.24 in /modules/junit-jupiter (#4531) @dependabot
- Bump postgresql from 42.2.23 to 42.2.24 in /examples (#4528) @dependabot
- Bump org.jetbrains.kotlin.plugin.spring from 1.5.30 to 1.5.31 in /examples (#4526) @dependabot
- Bump postgresql from 42.2.23 to 42.2.24 in /modules/spock (#4523) @dependabot
- Bump assertj-core from 3.20.2 to 3.21.0 in /modules/pulsar (#4522) @dependabot
- Bump assertj-core from 3.20.2 to 3.21.0 in /modules/junit-jupiter (#4521) @dependabot
- Bump transport from 7.14.1 to 7.15.0 in /modules/elasticsearch (#4516) @dependabot
- Bump elasticsearch-rest-client from 7.14.1 to 7.15.0 in /modules/elasticsearch (#4520) @dependabot
- Bump guava from 30.1.1-jre to 31.0.1-jre in /modules/jdbc-test (#4518) @dependabot
- Bump kafka-clients from 2.8.0 to 3.0.0 in /modules/kafka (#4515) @dependabot
- Bump r2dbc-mariadb from 1.0.2 to 1.0.3 in /modules/mariadb (#4505) @dependabot
- Bump org.jetbrains.kotlin.jvm from 1.5.30 to 1.5.31 in /examples (#4508) @dependabot
- Bump junit-jupiter-engine from 5.7.2 to 5.8.1 in /modules/junit-jupiter (#4513) @dependabot
- Bump postgresql from 42.2.23 to 42.2.24 in /modules/postgresql (#4509) @dependabot
- Bump assertj-core from 3.20.2 to 3.21.0 in /modules/neo4j (#4512) @dependabot
- Bump assertj-core from 3.20.2 to 3.21.0 in /examples (#4506) @dependabot
- Bump influxdb-java from 2.21 to 2.22 in /modules/influxdb (#4503) @dependabot
- Bump tomcat-jdbc from 10.0.10 to 10.0.12 in /modules/jdbc (#4498) @dependabot
- Bump junit-jupiter-params from 5.7.2 to 5.8.1 in /modules/junit-jupiter (#4500) @dependabot
- Bump annotations from 21.0.1 to 22.0.0 in /modules/oracle-xe (#4495) @dependabot
- Bump assertj-core from 3.20.2 to 3.21.0 in /core (#4496) @dependabot
- Bump assertj-core from 3.20.2 to 3.21.0 in /modules/jdbc (#4499) @dependabot
- Bump tomcat-jdbc from 10.0.10 to 10.0.12 in /modules/jdbc-test (#4493) @dependabot
- Bump gradle/wrapper-validation-action from 1.0.3 to 1.0.4 (#4161) @dependabot
- Bump s3 from 2.17.9 to 2.17.34 in /modules/localstack (#4447) @dependabot
- Bump aws-java-sdk-sqs from 1.12.37 to 1.12.62 in /modules/localstack (#4446) @dependabot
- Bump aws-java-sdk-s3 from 1.12.37 to 1.12.62 in /modules/localstack (#4445) @dependabot
- Bump jedis from 3.6.1 to 3.7.0 in /examples (#4432) @dependabot
- Bump amqp-client from 5.12.0 to 5.13.1 in /core (#4430) @dependabot
- Bump org.jetbrains.kotlin.jvm from 1.5.10 to 1.5.30 in /examples (#4428) @dependabot
- Bump annotations from 21.0.1 to 22.0.0 in /core (#4427) @dependabot
- Bump cucumber-java from 6.9.1 to 6.11.0 in /examples (#4418) @dependabot
- Bump transport from 7.13.4 to 7.14.1 in /modules/elasticsearch (#4417) @dependabot
- Bump mssql-jdbc from 9.3.1.jre8-preview to 9.4.0.jre8 in /modules/mssqlserver (#4414) @dependabot
- Bump actions/setup-java from 2.1.0 to 2.3.0 (#4439) @dependabot
- Bump gradle-update/update-gradle-wrapper-action from 1.0.14 to 1.0.15 (#4438) @dependabot
- Bump gson from 2.8.7 to 2.8.8 in /examples (#4437) @dependabot
- Bump org.jetbrains.kotlin.plugin.spring from 1.5.21 to 1.5.30 in /examples (#4436) @dependabot
- Bump org.springframework.boot from 2.5.2 to 2.5.4 in /examples (#4435) @dependabot
- Bump mongo-java-driver from 3.12.9 to 3.12.10 in /core (#4434) @dependabot
- Bump annotations from 21.0.1 to 22.0.0 in /examples (#4433) @dependabot
- Bump jedis from 3.6.1 to 3.7.0 in /examples (#4432) @dependabot
- Bump amqp-client from 5.12.0 to 5.13.1 in /core (#4430) @dependabot
- Bump org.jetbrains.kotlin.jvm from 1.5.10 to 1.5.30 in /examples (#4428) @dependabot
- Bump aws-java-sdk-logs from 1.12.37 to 1.12.60 in /modules/localstack (#4425) @dependabot
- Bump cucumber-junit from 6.9.1 to 6.11.0 in /examples (#4426) @dependabot
- Bump elasticsearch-rest-client from 7.13.0 to 7.14.1 in /modules/elasticsearch (#4424) @dependabot
- Bump mockito-core from 3.11.2 to 3.12.4 in /core (#4422) @dependabot
- Bump mockito-core from 3.11.2 to 3.12.4 in /modules/junit-jupiter (#4421) @dependabot
- Bump cucumber-java from 6.9.1 to 6.11.0 in /examples (#4418) @dependabot
- Bump java-client from 3.2.0 to 3.2.1 in /modules/couchbase (#4415) @dependabot
- Bump annotations from 21.0.1 to 22.0.0 in /modules/postgresql (#4416) @dependabot
- Bump transport from 7.13.4 to 7.14.1 in /modules/elasticsearch (#4417) @dependabot
- Bump annotations from 21.0.1 to 22.0.0 in /modules/selenium (#4412) @dependabot
- Bump aws-java-sdk-dynamodb from 1.12.37 to 1.12.60 in /modules/dynalite (#4413) @dependabot
- Bump jedis from 3.6.3 to 3.7.0 in /modules/junit-jupiter (#4409) @dependabot
- Bump annotations from 21.0.1 to 22.0.0 in /modules/mysql (#4408) @dependabot
- Bump mariadb-java-client from 2.7.3 to 2.7.4 in /modules/mariadb (#4407) @dependabot
- Bump annotations from 21.0.1 to 22.0.0 in /modules/jdbc (#4406) @dependabot
- Bump tomcat-jdbc from 10.0.8 to 10.0.10 in /modules/jdbc (#4411) @dependabot
- Bump jedis from 3.6.3 to 3.7.0 in /core (#4410) @dependabot
- Bump annotations from 21.0.1 to 22.0.0 in /modules/spock (#4404) @dependabot
- Bump tomcat-jdbc from 10.0.8 to 10.0.10 in /modules/jdbc-test (#4403) @dependabot
- Bump annotations from 21.0.1 to 22.0.0 in /modules/nginx (#4405) @dependabot
- Bump commons-compress from 1.20 to 1.21 in /core (#4349, #4308) @dependabot
- Bump logback-classic from 1.2.3 to 1.2.5 in /examples (#4347) @dependabot
- Bump postgresql from 42.2.22 to 42.2.23 in /modules/junit-jupiter (#4341) @dependabot
- Bump mysql-connector-java from 8.0.25 to 8.0.26 in /modules/spock (#4339) @dependabot
- Bump slf4j-simple from 1.7.30 to 1.7.32 in /examples (#4346) @dependabot
- Bump aws-java-sdk-sqs from 1.12.19 to 1.12.37 in /modules/localstack (#4328) @dependabot
- Bump aws-java-sdk-dynamodb from 1.12.16 to 1.12.37 in /modules/dynalite (#4327) @dependabot
- Bump r2dbc-mariadb from 1.0.1 to 1.0.2 in /modules/mariadb (#4324) @dependabot
- Bump s3 from 2.16.97 to 2.17.9 in /modules/localstack (#4319) @dependabot
- Bump tomcat-jdbc from 10.0.7 to 10.0.8 in /modules/jdbc-test (#4320) @dependabot
- Bump org.jetbrains.kotlin.plugin.spring from 1.5.20 to 1.5.21 in /examples (#4351) @dependabot
- Bump postgresql from 42.2.22 to 42.2.23 in /examples (#4350) @dependabot
- Bump jedis from 3.6.1 to 3.6.3 in /core (#4348) @dependabot
- Bump logback-classic from 1.2.3 to 1.2.5 in /examples (#4347) @dependabot
- Bump aws-java-sdk-logs from 1.12.16 to 1.12.37 in /modules/localstack (#4345) @dependabot
- Bump testcontainers from 1.15.3 to 1.16.0 in /core (#4344) @dependabot
- Bump postgresql from 42.2.22 to 42.2.23 in /modules/spock (#4343) @dependabot
- Bump slf4j-api from 1.7.30 to 1.7.32 in /examples (#4342) @dependabot
- Bump amqp-client from 5.12.0 to 5.13.0 in /core (#4340) @dependabot
- Bump transport from 7.13.2 to 7.13.4 in /modules/elasticsearch (#4336) @dependabot
- Bump aws-java-sdk-s3 from 1.12.16 to 1.12.37 in /modules/localstack (#4338) @dependabot
- Bump mysql-connector-java from 8.0.25 to 8.0.26 in /modules/spock (#4339) @dependabot
- Bump HikariCP from 4.0.3 to 5.0.0 in /modules/spock (#4334) @dependabot
- Bump mysql-connector-java from 8.0.25 to 8.0.26 in /modules/mysql (#4333) @dependabot
- Bump mongo-java-driver from 3.12.7 to 3.12.9 in /core (#4332) @dependabot
- Bump jedis from 3.6.1 to 3.6.3 in /modules/junit-jupiter (#4329) @dependabot
- Bump org.jetbrains.kotlin.jvm from 1.5.10 to 1.5.21 in /examples (#4331) @dependabot
- Bump elasticsearch-rest-client from 7.13.0 to 7.13.4 in /modules/elasticsearch (#4330) @dependabot
- Bump jedis from 3.6.1 to 3.6.3 in /examples (#4326) @dependabot
- Bump slf4j-api from 1.7.30 to 1.7.32 in /core (#4322) @dependabot
- Bump postgresql from 42.2.22 to 42.2.23 in /modules/postgresql (#4325) @dependabot
- Bump mysql-connector-java from 8.0.25 to 8.0.26 in /modules/junit-jupiter (#4323) @dependabot
- Bump java-client from 3.1.6 to 3.2.0 in /modules/couchbase (#4321) @dependabot
- Bump mysql-connector-java from 8.0.25 to 8.0.26 in /modules/jdbc-test (#4318) @dependabot
- Bump s3 from 2.16.97 to 2.17.9 in /modules/localstack (#4319) @dependabot