Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Dec 1, 2025

Updated Testcontainers from 4.6.0 to 4.9.0.

Release notes

Sourced from Testcontainers's releases.

4.9.0

What's Changed

This release adds a new configuration (DOCKER_API_VERSION) that lets you pin and downgrade the Docker Engine API version. This was needed because Docker Engine v29 introduced breaking changes that affect Docker.DotNet and Testcontainers for .NET. This release pins the API version to 1.44. So far, no issues or negative side effects have been observed.

I am also working on updating Docker.DotNet to make it fully compatible with Docker Engine v29. There is already a work-in-progress PR.

Thanks to all the contributors who helped with this release 👍.

⚠️ Breaking Changes

  • feat: Add KurrentDb module (#​1583) @​diegosasw

🚀 Features

  • feat: Add KurrentDb module (#​1583) @​diegosasw
  • chore: Bump NuGet dependencies (#​1578) @​HofmeisterAn
  • feat: Add .NET 10 support (#​1572) @​HofmeisterAn
  • feat: Support configuring Docker API version (#​1576) @​HofmeisterAn
  • feat: Add Mosquitto module (#​1522) @​EtherZa
  • feat: Add Toxiproxy module (#​1454) @​iltertaha
  • feat: Add Grafana module (#​1509) @​thomhurst
  • feat: Add Playwright module (#​1288) @​alimahboubi

🐛 Bug Fixes

  • fix(Milvus): Set DEPLOY_MODE=STANDALONE (necessary for v2.6+) (#​1569) @​verdie-g
  • fix: Set Kusto wait strategy encoding to UTF-8 (#​1567) @​MattKotsenas
  • fix: Split ALL_CHANGED_FILES on any whitespace (#​1566) @​HofmeisterAn

📖 Documentation

  • docs: Use correct comment characters for C# language (#​1564) @​HofmeisterAn

🧹 Housekeeping

  • feat: Add SLNX file (#​1579) @​HofmeisterAn
  • chore: Update Toxiproxy NuGet dependency to a .NET compatible version (#​1568) @​HofmeisterAn
  • chore: Add script to detect which tests to run in CI (#​1563) @​HofmeisterAn
  • chore: Make the continuous delivery job fork-friendly (#​1559) @​0xced
  • feat: Prepare next release cycle (4.9.0) (#​1561) @​HofmeisterAn

4.8.1

What's Changed

🐛 Bug Fixes

  • fix: Compute correct relative Dockerfile file path (#​1558) @​HofmeisterAn

4.8.0

What's Changed

Thank you to all the contributors 🙌.

In version 4.7.0, we noticed that the reuse hash could change depending on the order of dictionary values. This has been fixed to ensure that dictionary values are processed in a consistent order when generating the reuse hash. As a result, the reuse hash will likely change again with 4.8.0.

Wait strategies now default to the Running mode. This mode expects the container to remain running throughout startup. If the container exits unexpectedly, Testcontainers will throw a ContainerNotRunningException that includes the exit code and container logs.

The container startup callback now includes an additional overload that provides the actual container configuration. If you implement IContainerBuilder<TBuilderEntity, TContainerEntity>, you need to add the container configuration (e.g., IContainerConfiguration) as a third generic type constraint to IContainerBuilder.

IContainerBuilder.WithResourceMapping and IContainer.CopyAsync now include two new optional arguments: uid and gid. If you do not need to specify those, use named arguments for the existing parameters: fileMode or ct.

⚠️ Breaking Changes

  • fix: Generate consistent reuse hashes by sorting dictionary keys (#​1554) @​0xced
  • feat: Throw if container not running (#​1550) @​HofmeisterAn
  • feat: Add startup callback overload with configuration type (#​1547) @​HofmeisterAn
  • feat: Support UID/GID when copying files (#​1531) @​HofmeisterAn

🚀 Features

  • feat: Throw if container not running (#​1550) @​HofmeisterAn
  • feat: Add startup callback overload with configuration type (#​1547) @​HofmeisterAn
  • feat: Add Docker build context (#​1536) @​HofmeisterAn
  • feat: Add WithTarget(string) to image builder (#​1534) @​HofmeisterAn
  • feat: Resolve Dockerfile ARGs pulling base images (#​1532) @​HofmeisterAn
  • feat: Support UID/GID when copying files (#​1531) @​HofmeisterAn
  • feat(Keycloak): Add API to import a realm configuration file (#​1526) @​VladislavAntonyuk

🐛 Bug Fixes

  • fix: Generate consistent reuse hashes by sorting dictionary keys (#​1554) @​0xced
  • fix(MongoDb): Use db.runCommand({hello:1}) do detect readiness (#​1548) @​HofmeisterAn
  • fix(Papercut): Pin version 7.0 and set new HTTP and SMTP ports (#​1549) @​HofmeisterAn
  • fix(Pulsar): Wait for default namespace (#​1539) @​HofmeisterAn
  • fix(Keycloak): Wait until user created (#​1535) @​HofmeisterAn

📖 Documentation

  • docs: Remove obsolete UntilOperationIsSucceeded wait strategy example (#​1551) @​ascott18
  • docs: Fix link to Ryuk in IContainerBuilder.WithAutoRemove code comment (#​1546) @​hojmark

🧹 Housekeeping

  • chore: Don't create a static field in a generic class (#​1555) @​HofmeisterAn
  • chore: Add test certificates to common project (#​1545) @​HofmeisterAn
  • chore: Update CI workflow to ubuntu-24.04 (#​1544) @​HofmeisterAn
  • chore: Collect test projects at CI runtime (#​1543) @​HofmeisterAn
  • chore: Fix grammar (#​1542) @​Smoothengineer
  • chore: Bump Ryuk (#​1537) @​HofmeisterAn
    ... (truncated)

4.7.0

What's Changed

This release doesn't introduce breaking changes to the public API, but it isn't binary compatible due to necessary internal changes. Make sure to update all related packages (Testcontainers modules) to the same version. See more details here. Thanks to all contributors 👏.

⚠️ Breaking Changes

  • feat(Kafka): Add KRaft support (#​1353) @​SukharevAndrey
  • feat: Add ability to override enumerable builder values (#​1506) @​HofmeisterAn

🚀 Features

  • feat: Add wait strategy to check external (TCP) port availability (#​1495) @​WhiteTomX
  • feat(Kafka): Add KRaft support (#​1353) @​SukharevAndrey
  • feat: Relax Base64 auth provider and ignore path segments in Docker registry URLs (#​1516) @​HofmeisterAn
  • feat: Add ability to override enumerable builder values (#​1506) @​HofmeisterAn
  • feat(Elasticsearch): Return HTTP connection string if security is disabled (#​1494) @​HofmeisterAn
  • fix: Add tooling to inherit XML docs (#​1493) @​HofmeisterAn
  • feat: Resolve .slnx (solution) file in common directory paths (#​1492) @​alexander-jesner-AP
  • feat: Support getting all mapped ports (#​1485) @​HofmeisterAn
  • feat: Add named pipe connection timeout custom configuration (#​1480) @​HofmeisterAn

🐛 Bug Fixes

  • feat(Kafka): Add KRaft support (#​1353) @​SukharevAndrey
  • fix: Send valid HTTP test responses (#​1505) @​HofmeisterAn
  • fix: Use null-conditional operator to access FinishedAt (#​1499) @​HofmeisterAn
  • fix: Remove timeout that kills PID 1 when stopping a container (#​1481) @​HofmeisterAn
  • fix(Pulsar): Wait until the consumer becomes connected (#​1467) @​HofmeisterAn
  • fix(ServiceBus): Remove container lifecycle overrides (#​1465) @​HofmeisterAn

📖 Documentation

  • docs: Explain how to substitute the Docker Hub registry (#​1503) @​HofmeisterAn
  • docs: Extend example copying files to a container (#​1487) @​cimnine

🧹 Housekeeping

  • chore: Change Kafka vendor configuration from class to interface (#​1519) @​HofmeisterAn
  • chore: Bump Docker.DotNet version to 3.128.5 (#​1511) @​HofmeisterAn
  • chore: Build a single project instead of the whole solution (#​1502) @​HofmeisterAn

Commits viewable in compare view.

Updated Testcontainers.PostgreSql from 4.6.0 to 4.9.0.

Release notes

Sourced from Testcontainers.PostgreSql's releases.

4.9.0

What's Changed

This release adds a new configuration (DOCKER_API_VERSION) that lets you pin and downgrade the Docker Engine API version. This was needed because Docker Engine v29 introduced breaking changes that affect Docker.DotNet and Testcontainers for .NET. This release pins the API version to 1.44. So far, no issues or negative side effects have been observed.

I am also working on updating Docker.DotNet to make it fully compatible with Docker Engine v29. There is already a work-in-progress PR.

Thanks to all the contributors who helped with this release 👍.

⚠️ Breaking Changes

  • feat: Add KurrentDb module (#​1583) @​diegosasw

🚀 Features

  • feat: Add KurrentDb module (#​1583) @​diegosasw
  • chore: Bump NuGet dependencies (#​1578) @​HofmeisterAn
  • feat: Add .NET 10 support (#​1572) @​HofmeisterAn
  • feat: Support configuring Docker API version (#​1576) @​HofmeisterAn
  • feat: Add Mosquitto module (#​1522) @​EtherZa
  • feat: Add Toxiproxy module (#​1454) @​iltertaha
  • feat: Add Grafana module (#​1509) @​thomhurst
  • feat: Add Playwright module (#​1288) @​alimahboubi

🐛 Bug Fixes

  • fix(Milvus): Set DEPLOY_MODE=STANDALONE (necessary for v2.6+) (#​1569) @​verdie-g
  • fix: Set Kusto wait strategy encoding to UTF-8 (#​1567) @​MattKotsenas
  • fix: Split ALL_CHANGED_FILES on any whitespace (#​1566) @​HofmeisterAn

📖 Documentation

  • docs: Use correct comment characters for C# language (#​1564) @​HofmeisterAn

🧹 Housekeeping

  • feat: Add SLNX file (#​1579) @​HofmeisterAn
  • chore: Update Toxiproxy NuGet dependency to a .NET compatible version (#​1568) @​HofmeisterAn
  • chore: Add script to detect which tests to run in CI (#​1563) @​HofmeisterAn
  • chore: Make the continuous delivery job fork-friendly (#​1559) @​0xced
  • feat: Prepare next release cycle (4.9.0) (#​1561) @​HofmeisterAn

4.8.1

What's Changed

🐛 Bug Fixes

  • fix: Compute correct relative Dockerfile file path (#​1558) @​HofmeisterAn

4.8.0

What's Changed

Thank you to all the contributors 🙌.

In version 4.7.0, we noticed that the reuse hash could change depending on the order of dictionary values. This has been fixed to ensure that dictionary values are processed in a consistent order when generating the reuse hash. As a result, the reuse hash will likely change again with 4.8.0.

Wait strategies now default to the Running mode. This mode expects the container to remain running throughout startup. If the container exits unexpectedly, Testcontainers will throw a ContainerNotRunningException that includes the exit code and container logs.

The container startup callback now includes an additional overload that provides the actual container configuration. If you implement IContainerBuilder<TBuilderEntity, TContainerEntity>, you need to add the container configuration (e.g., IContainerConfiguration) as a third generic type constraint to IContainerBuilder.

IContainerBuilder.WithResourceMapping and IContainer.CopyAsync now include two new optional arguments: uid and gid. If you do not need to specify those, use named arguments for the existing parameters: fileMode or ct.

⚠️ Breaking Changes

  • fix: Generate consistent reuse hashes by sorting dictionary keys (#​1554) @​0xced
  • feat: Throw if container not running (#​1550) @​HofmeisterAn
  • feat: Add startup callback overload with configuration type (#​1547) @​HofmeisterAn
  • feat: Support UID/GID when copying files (#​1531) @​HofmeisterAn

🚀 Features

  • feat: Throw if container not running (#​1550) @​HofmeisterAn
  • feat: Add startup callback overload with configuration type (#​1547) @​HofmeisterAn
  • feat: Add Docker build context (#​1536) @​HofmeisterAn
  • feat: Add WithTarget(string) to image builder (#​1534) @​HofmeisterAn
  • feat: Resolve Dockerfile ARGs pulling base images (#​1532) @​HofmeisterAn
  • feat: Support UID/GID when copying files (#​1531) @​HofmeisterAn
  • feat(Keycloak): Add API to import a realm configuration file (#​1526) @​VladislavAntonyuk

🐛 Bug Fixes

  • fix: Generate consistent reuse hashes by sorting dictionary keys (#​1554) @​0xced
  • fix(MongoDb): Use db.runCommand({hello:1}) do detect readiness (#​1548) @​HofmeisterAn
  • fix(Papercut): Pin version 7.0 and set new HTTP and SMTP ports (#​1549) @​HofmeisterAn
  • fix(Pulsar): Wait for default namespace (#​1539) @​HofmeisterAn
  • fix(Keycloak): Wait until user created (#​1535) @​HofmeisterAn

📖 Documentation

  • docs: Remove obsolete UntilOperationIsSucceeded wait strategy example (#​1551) @​ascott18
  • docs: Fix link to Ryuk in IContainerBuilder.WithAutoRemove code comment (#​1546) @​hojmark

🧹 Housekeeping

  • chore: Don't create a static field in a generic class (#​1555) @​HofmeisterAn
  • chore: Add test certificates to common project (#​1545) @​HofmeisterAn
  • chore: Update CI workflow to ubuntu-24.04 (#​1544) @​HofmeisterAn
  • chore: Collect test projects at CI runtime (#​1543) @​HofmeisterAn
  • chore: Fix grammar (#​1542) @​Smoothengineer
  • chore: Bump Ryuk (#​1537) @​HofmeisterAn
    ... (truncated)

4.7.0

What's Changed

This release doesn't introduce breaking changes to the public API, but it isn't binary compatible due to necessary internal changes. Make sure to update all related packages (Testcontainers modules) to the same version. See more details here. Thanks to all contributors 👏.

⚠️ Breaking Changes

  • feat(Kafka): Add KRaft support (#​1353) @​SukharevAndrey
  • feat: Add ability to override enumerable builder values (#​1506) @​HofmeisterAn

🚀 Features

  • feat: Add wait strategy to check external (TCP) port availability (#​1495) @​WhiteTomX
  • feat(Kafka): Add KRaft support (#​1353) @​SukharevAndrey
  • feat: Relax Base64 auth provider and ignore path segments in Docker registry URLs (#​1516) @​HofmeisterAn
  • feat: Add ability to override enumerable builder values (#​1506) @​HofmeisterAn
  • feat(Elasticsearch): Return HTTP connection string if security is disabled (#​1494) @​HofmeisterAn
  • fix: Add tooling to inherit XML docs (#​1493) @​HofmeisterAn
  • feat: Resolve .slnx (solution) file in common directory paths (#​1492) @​alexander-jesner-AP
  • feat: Support getting all mapped ports (#​1485) @​HofmeisterAn
  • feat: Add named pipe connection timeout custom configuration (#​1480) @​HofmeisterAn

🐛 Bug Fixes

  • feat(Kafka): Add KRaft support (#​1353) @​SukharevAndrey
  • fix: Send valid HTTP test responses (#​1505) @​HofmeisterAn
  • fix: Use null-conditional operator to access FinishedAt (#​1499) @​HofmeisterAn
  • fix: Remove timeout that kills PID 1 when stopping a container (#​1481) @​HofmeisterAn
  • fix(Pulsar): Wait until the consumer becomes connected (#​1467) @​HofmeisterAn
  • fix(ServiceBus): Remove container lifecycle overrides (#​1465) @​HofmeisterAn

📖 Documentation

  • docs: Explain how to substitute the Docker Hub registry (#​1503) @​HofmeisterAn
  • docs: Extend example copying files to a container (#​1487) @​cimnine

🧹 Housekeeping

  • chore: Change Kafka vendor configuration from class to interface (#​1519) @​HofmeisterAn
  • chore: Bump Docker.DotNet version to 3.128.5 (#​1511) @​HofmeisterAn
  • chore: Build a single project instead of the whole solution (#​1502) @​HofmeisterAn

Commits viewable in compare view.

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore <dependency name> major version will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
  • @dependabot ignore <dependency name> minor version will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
  • @dependabot ignore <dependency name> will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
  • @dependabot unignore <dependency name> will remove all of the ignore conditions of the specified dependency
  • @dependabot unignore <dependency name> <ignore condition> will remove the ignore condition of the specified dependency and ignore conditions

Bumps Testcontainers from 4.6.0 to 4.9.0
Bumps Testcontainers.PostgreSql from 4.6.0 to 4.9.0

---
updated-dependencies:
- dependency-name: Testcontainers
  dependency-version: 4.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: testcontainers
- dependency-name: Testcontainers.PostgreSql
  dependency-version: 4.9.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: testcontainers
...

Signed-off-by: dependabot[bot] <[email protected]>
@dependabot dependabot bot added .NET Pull requests that update .NET code dependencies Pull requests that update a dependency file labels Dec 1, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file .NET Pull requests that update .NET code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant