Skip to content

Releases: testcontainers/testcontainers-dotnet

2.4.0

01 Feb 13:22
af7f253
Compare
Choose a tag to compare

What's Changed

⚠️ Breaking Changes

We made a concerted effort to avoid breaking changes as much as possible. Our goal was to provide a smooth transition to the new version for our users. To achieve this, we have flagged all upcoming breaking changes as obsolete, which means that they will still work for now but will be removed in the next version.

However, there may be cases where we are unable to maintain backwards compatibility. In such instances, we will do our best to provide clear documentation and guidance on how to update your code to work with the new version. We apologize in advance for any inconvenience this may cause and we appreciate your understanding.

  1. The interface member IWaitUntil.Until(ITestcontainersContainer, ILogger) has been changed to IWaitUntil.UntilAsync(IContainer). The container instance now holds the instance of ILogger.

  2. The member ImageFromDockerfileBuilder.Build() does not return a Task<string> anymore. It returns an implementation of IFutureDockerImage. To finally build the image call CreateAsync(CancellationToken).

  3. Use the ContainerBuilder instead of TestcontainersBuilder<TestcontainersContainer> or ContainerBuilder<DockerContainer> for generic (non module) configurations. If you rely on the module builder, please be aware of #750 (comment) for now.

  4. Following interfaces and classes has been renamed (the old interfaces and classes are still supported in 2.4.0):

    Old name New name
    ITestcontainersContainer, IDockerContainer, IRunningDockerContainer IContainer
    IDockerImage IImage
    IDockerNetwork INetwork
    IDockerVolume IVolume
    TestcontainersBuilder ContainerBuilder
    TestcontainersNetworkBuilder NetworkBuilder
    TestcontainersVolumeBuilder VolumeBuilder
    TestcontainersContainer DockerContainer

🚀 Features

🐛 Bug Fixes

📖 Documentation

🧹 Housekeeping

Release 2.3.0

12 Dec 09:52
8396772
Compare
Choose a tag to compare

As part of this release we had 9 issues closed.

Added

  • #531 Add Docker health status wait strategy (@kfrajtak)
  • #640 Add ITestcontainersBuilder<TDockerContainer>.WithResourceMapping to copy files or any binary contents into the created container before it is started
  • #654 Add ITestcontainersNetworkBuilder.WithOption (@vlaskal)
  • #678 Add support of custom configuration TESTCONTAINERS_HOST_OVERRIDE and TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE
  • #694 Add Resource Reaper (Ryuk) privileged mode support (TESTCONTAINERS_RYUK_CONTAINER_PRIVILEGED)

Changed

  • #642 Expose container port bindings automatically
  • #603 Add default logger that forwards messages to the console (does not support every test environment)
  • #683 Return the gateway address (IDockerContainer.Hostname) of a network if one is assigned
  • #703 ResourceReaper.GetAndStartDefaultAsync no longer support optional arguments, it is necessary to set the Resource Reaper configuration immediately

Fixed

  • #610 Trim traling slashes in Dockerfile directory path (otherwise, it cuts the first character of the relative path), Normalize paths to forward slashes
  • #648 Always include .dockerignore and Dockerfile files in tarball (docker build)
  • #650 Update SharpZipLib to version 1.4.1 to prevent a deadlock in the Docker container image build
  • #666 DockerImageNotFoundException when logged in with Docker Desktop instead of the CLI

Thanks for your contributions 🙏

Release 2.2.0

27 Oct 10:42
995c779
Compare
Choose a tag to compare

As part of this release we had 24 issues closed.

Added

  • #370 Add protected Docker daemon socket support (@vlaskal)
  • #421 Add Azurite module (@vlaskal)
  • #421 Add Cosmos DB Linux Emulator (@Yeseh, @ktjn)
  • #504 Add Elasticsearch module (@chertby)
  • #516 Add ITestcontainersBuilder<TDockerContainer>.WithTmpfsMount (@chrisbbe)
  • #520 Add MariaDB module (@renemadsen)
  • #528 Do not require the Docker host configuration (DockerEndpointAuthConfig) on TestcontainersSettings initialization
  • #538 Support optional username and password in MongoDB connection string (@the-avid-engineer)
  • #540 Add Docker registry authentication provider for DOCKER_AUTH_CONFIG environment variable (@vova-lantsov-dev)
  • #541 Allow MsSqlTestcontainerConfiguration custom database names (@enginexon)
  • #558 Support relative base directories other than the working directory with WithDockerfileDirectory
  • #565 Add ExecScriptAsync (MongoDB Shell) to MongoDB module
  • #579 Add Neo4j module (@kaiserbergin)
  • #583 Add XML documentation to NuGet
  • #592 Add LocalStack module (@bgener)
  • #594 Add IDockerContainer.GetLogs
  • #601 Add ITestcontainersBuilder<TDockerContainer>.WithImagePullPolicy (@BenasB)
  • #616 Add ITestcontainersBuilder<TDockerContainer>.WithMacAddress (@seb1992)
  • #618 Match .dockerignore entry * to all files and directories
  • #626 Support MySQL root password configuration (@DanielHabenicht)

Changed

  • #571 Update wnameless/oracle-xe-11g-r2 to gvenzl/oracle-xe:21-slim

Fixed

  • #525 Read ServerURL, Username and Secret field from CredsStore response to pull private Docker images
  • #595 Implement TestcontainersContainer.DisposeAsync thread safe (rename TestcontainersState to TestcontainersStates)
  • #604 Do not deny all files in the Docker image tarball when a .dockerignore entry ends with /
  • #610 Do not deny all files in the Docker image tarball when a .dockerignore entry ends with /*
  • #632 Execute local database scripts (inside the container) against localhost
  • #634 JsonReaderException in Docker.DotNet with Docker Desktop 4.13.0 (dotnet/Docker.DotNet#595)

Thanks for your contributions 🙏

Release 2.1.0

20 Jul 17:38
53d37fa
Compare
Choose a tag to compare

As part of this release we had 11 issues closed.

Added

  • #481 Add builder access to the CreateContainerParameters instance (@Xitric)
  • #483 Support custom resource reaper image via TestcontainersSettings.ResourceReaperImage (@vlaskal)
  • #495 Add CHANGELOG.md
  • #496 Support ~/.testcontainers.properties custom configuration
  • #500 Add trace output while building or pulling a Docker image (@michal-korniak)
  • #501 Throw an exception when Docker image has not been built (@michal-korniak)
  • #509 Check if the authentication provider can establish a Docker endpoint connection
  • #510 Add IImageFromDockerfileBuilder.WithBuildArgument (@michal-korniak)
  • #511 Remove temp Dockerfile archive after Docker build (@michal-korniak)
  • #512 Throw ArgumentException if Docker image name contains uppercase characters (@michal-korniak)

Removed

  • #497 Remove ResourceReaperDiagnostics

Fixed

  • #431 Fix System.InvalidOperationException : cannot hijack chunked or content length stream (update Docker.DotNet dependency)
  • #449 Fix wrong mapped public host port
  • #484 Fix unit tests that fail on Windows hosts (@vlaskal)
  • #507 Fix ITestcontainersConfiguration duplication, such as DockerApiException : [...] Duplicate mount point [...] (@alesandrino)

Thanks for your contributions 🙏

Release 2.0.1

28 Jun 14:03
ea7d517
Compare
Choose a tag to compare

As part of this patch release we had 2 issues closed.

  • #449 Fixes ResourceReaperException, Testcontainers couldn't establish a connection to the resource reaper (public host port wasn't set)
  • #485 Fixes ArgumentNullException while mapping the network configurations in TestcontainersConfigurationConverter (@pellared)

Release 2.0.0

21 Jun 14:39
1a093fc
Compare
Choose a tag to compare

With this release, we transferred the repository to the official Testcontainers organization. As part of this release we had 3 issues closed.

  • #455 Add WithNetworkAliases (@vlaskal).
  • #461 Add Docker credentials helpers (@harrhp).
  • #470 Fixes HubImageNamePrefix in combination with private Docker registry credentials (@bohlenc).

Release 1.6.0

07 Jun 16:28
2aeec1e
Compare
Choose a tag to compare

As part of this release we had 10 issues closed.

⚠️ This version has breaking changes. It contains a lot of new features, including performance and stability improvements.

  • #242, #464 Add Resource Reaper (@PSanetra, @s-rech).
  • #393 Pass container instance to wait strategy.
  • #398 Add MongoDB module (@RMariowski).
  • #403 Add managed volume.
  • #430 Get file from a running container (@s-rech).
  • #444 Add Docker credentials store (credentials helpers not included).
  • #463 Use DOCKER_HOST as Docker endpoint (supports custom client configurations).
  • #466 Add Docker Hub substitution (@bohlenc).
  • #428 Fixes NullReferenceException when Docker image is not set (@jlevier-ae).
  • #390 Get the ExecResult instead of the exit code from IDockerContainerOperations.ExecAsync (@fabiogouw).
  • #399 Add IDatabaseScript.IDatabaseScript for TestcontainerDatabase (@fabiogouw).

📝 If your Docker host can't access the domain socket (or IPC socket) /var/run/docker.sock, disable the Resource Reaper (TestcontainersSettings.ResourceReaperEnabled = false).

Release 1.5.0

18 Jul 08:58
Compare
Choose a tag to compare

As part of this release we had 7 issues closed.

  • #356, #357 Add WithStartupCallback.
  • #324 Add WithNetwork (@brethubbard).
  • #371 Add UDP, TCP and SCTP support for port bindings (@Uzivatel919).
  • #381 Add netstandard2.0 (@chrisbbe).
  • #335 Fix issue, where StartAsync cannot be canceled.
  • #379 Fix issue, where the overwritten configuration (appsettings.Environment.json) was not applied (@as-ivanov).

Release 1.4.0

10 Sep 12:07
Compare
Choose a tag to compare

As part of this release we had 5 issues closed.

  • #31 Support authentication against private Docker Hubs.
  • #265 Replace SolutionInfo.cs with Shared.msbuild.
  • #258 Add Couchbase Testcontainers (@mustafaonuraydin).
  • #218 Add .dockerignore file support.
  • #309 Fix issue, where TestcontainersContainer.StartAsync breaks Coverlet code coverage generation.
  • Many minor improvements.

Release 1.3.0

09 Jun 09:52
Compare
Choose a tag to compare

As part of this release we had 5 issues closed.

  • #213 Support Docker-in-Docker (mounted docker-socket) (by @farodin91)
  • #220 Add Oracle XE example container (by @EvdAnton).
  • #232 Add missing Docker image name pattern (by @superkartoffel).
  • #237 Fix issue, where ImageFromDockerfileBuilder does not tag large Docker images (by @Jejuni).
  • #247 Fix issue, where ITestcontainersBuilder configurations were added twice for module configurations.