Skip to content

Conversation

@glucaci
Copy link
Member

@glucaci glucaci commented Dec 23, 2025

This pull request introduces significant changes to the project’s core infrastructure, primarily migrating from Docker.DotNet to the Testcontainers library for managing Docker containers. It also updates CI/CD workflows for improved .NET version support and simplifies the project’s configuration and dependency management. Several obsolete or Docker.DotNet-specific abstractions have been removed, and package references have been updated accordingly.

Migration to Testcontainers and Dependency Updates:

  • Replaced the Docker.DotNet.Enhanced dependency with Testcontainers and its related packages (e.g., Testcontainers.MongoDb, Testcontainers.PostgreSql, etc.) in Directory.Packages.props and src/Core/Core.csproj. Also updated SSH.NET and downgraded xunit.runner.visualstudio to resolve compatibility issues. [1] [2] [3] [4]
  • Refactored the core container management logic to use TestcontainersDockerManager instead of the previous Docker.DotNet-based manager in ContainerResource.cs.
  • Removed Docker.DotNet-specific types and configuration logic, including DockerAuth.cs, DockerConfiguration.cs, and related configuration/resolver code from ContainerResourceOptions.cs, ContainerResourceBuilder.cs, and ContainerResourceSettings.cs. [1] [2] [3] [4] [5] [6] [7] [8]

CI/CD and Build Improvements:

  • Enhanced the GitHub Actions CI workflow to test against .NET 8, 9, and 10 using a matrix strategy, added concurrency controls, and improved job naming and timeouts. [1] [2]
  • Updated the release workflow to build and pack using the matrix strategy and improved job naming. [1] [2] [3] [4]
  • Added a nuget.config to explicitly set the NuGet package source.

Codebase Simplification and Cleanup:

  • Refactored ChmodCommand to return simple string arrays for commands instead of Docker.DotNet-specific types, and removed unnecessary imports. [1] [2]
  • Cleaned up unused properties and methods related to Docker.DotNet in ContainerInstance.cs and other core files. [1] [2]
  • Updated project build logic in all.csproj to align with the new test/build separation and property naming (BuildTestsOnly).

These changes modernize the container management approach, streamline configuration, and improve CI/CD robustness for multi-version .NET testing.

… and downgrade xunit.runner.visualstudio version
@glucaci glucaci changed the title Refactor Docker container management to use Testcontainers feat: refactor Docker container management to use Testcontainers Dec 25, 2025
Copy link
Contributor

@Carael Carael left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! A little bit sad but for sake of compatibility let's do it!🚀

@glucaci glucaci merged commit 9c610ac into master Jan 8, 2026
4 checks passed
@glucaci glucaci deleted the change-host branch January 8, 2026 17:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants