Testcontainers version
4.12.0
Using the latest Testcontainers version?
Yes
Host OS
Windows
Host arch
x86-64
.NET version
10.0.300
Docker version
Docker version
Client:
Version: 29.4.3
API version: 1.54
Go version: go1.26.2
Git commit: 055a478
Built: Wed May 6 17:10:36 2026
OS/Arch: windows/amd64
Context: desktop-linux
Server: Docker Desktop 4.74.0 (227015)
Engine:
Version: 29.4.3
API version: 1.54 (minimum version 1.40)
Go version: go1.26.2
Git commit: 56be731
Built: Wed May 6 17:07:37 2026
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v2.2.3
GitCommit: 77c84241c7cbdd9b4eca2591793e3d4f4317c590
runc:
Version: 1.3.5
GitCommit: v1.3.5-0-g488fc13e
docker-init:
Version: 0.19.0
GitCommit: de40ad0
Docker info
Docker info
Client:
Version: 29.4.3
Context: desktop-linux
Debug Mode: false
Plugins:
agent: Docker AI Agent Runner (Docker Inc.)
Version: v1.57.0
Path: C:\Program Files\Docker\cli-plugins\docker-agent.exe
ai: Docker AI Agent - Ask Gordon (Docker Inc.)
Version: v1.20.2
Path: C:\Program Files\Docker\cli-plugins\docker-ai.exe
buildx: Docker Buildx (Docker Inc.)
Version: v0.33.0-desktop.1
Path: C:\Program Files\Docker\cli-plugins\docker-buildx.exe
compose: Docker Compose (Docker Inc.)
Version: v5.1.4
Path: C:\Users\gabriele.ricci\.docker\cli-plugins\docker-compose.exe
debug: Get a shell into any image or container (Docker Inc.)
Version: 0.0.47
Path: C:\Program Files\Docker\cli-plugins\docker-debug.exe
desktop: Docker Desktop commands (Docker Inc.)
Version: v0.3.0
Path: C:\Program Files\Docker\cli-plugins\docker-desktop.exe
dhi: CLI for managing Docker Hardened Images (Docker Inc.)
Version: v0.0.3
Path: C:\Program Files\Docker\cli-plugins\docker-dhi.exe
extension: Manages Docker extensions (Docker Inc.)
Version: v0.2.31
Path: C:\Program Files\Docker\cli-plugins\docker-extension.exe
init: Creates Docker-related starter files for your project (Docker Inc.)
Version: v1.4.0
Path: C:\Program Files\Docker\cli-plugins\docker-init.exe
mcp: Docker MCP Plugin (Docker Inc.)
Version: v0.42.1
Path: C:\Program Files\Docker\cli-plugins\docker-mcp.exe
model: Docker Model Runner (Docker Inc.)
Version: v1.1.37
Path: C:\Program Files\Docker\cli-plugins\docker-model.exe
offload: Docker Offload (Docker Inc.)
Version: v0.5.89
Path: C:\Program Files\Docker\cli-plugins\docker-offload.exe
pass: Docker Pass Secrets Manager Plugin (beta) (Docker Inc.)
Version: v0.0.27
Path: C:\Program Files\Docker\cli-plugins\docker-pass.exe
sandbox: Docker Sandbox (Docker Inc.)
Version: v0.12.0
Path: C:\Program Files\Docker\cli-plugins\docker-sandbox.exe
sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
Version: 0.6.0
Path: C:\Program Files\Docker\cli-plugins\docker-sbom.exe
scout: Docker Scout (Docker Inc.)
Version: v1.21.0
Path: C:\Users\gabriele.ricci\.docker\cli-plugins\docker-scout.exe
Server:
Containers: 2
Running: 2
Paused: 0
Stopped: 0
Images: 17
Server Version: 29.4.3
Storage Driver: overlayfs
driver-type: io.containerd.snapshotter.v1
Logging Driver: json-file
Cgroup Driver: cgroupfs
Cgroup Version: 2
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
CDI spec directories:
/etc/cdi
/var/run/cdi
Discovered Devices:
cdi: docker.com/gpu=webgpu
Swarm: inactive
Runtimes: io.containerd.runc.v2 nvidia runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 77c84241c7cbdd9b4eca2591793e3d4f4317c590
runc version: v1.3.5-0-g488fc13e
init version: de40ad0
Security Options:
seccomp
Profile: builtin
cgroupns
Kernel Version: 6.6.87.2-microsoft-standard-WSL2
Operating System: Docker Desktop
OSType: linux
Architecture: x86_64
CPUs: 16
Total Memory: 15.48GiB
Name: docker-desktop
ID: d571f0d6-b9e9-4ae7-86ce-76f0551c1e3d
Docker Root Dir: /var/lib/docker
Debug Mode: false
HTTP Proxy: http.docker.internal:3128
HTTPS Proxy: http.docker.internal:3128
No Proxy: hubproxy.docker.internal
Labels:
com.docker.desktop.address=npipe://\\.\pipe\docker_cli
Experimental: false
Insecure Registries:
hubproxy.docker.internal:5555
::1/128
127.0.0.0/8
Live Restore Enabled: false
Firewall Backend: iptables
What happened?
The port binding is not working if I break the fluent interface like so:
PostgreSqlBuilder containerBuilder =
new PostgreSqlBuilder("postgres:15-alpine")
.WithDatabase(DatabaseName)
.WithUsername("postgres")
.WithPassword("Test123!")
.WithCommand(
"-c", "fsync=off",
"-c", "synchronous_commit=off",
"-c", "full_page_writes=off"
);
if (Debugger.IsAttached)
{
containerBuilder.WithPortBinding(55344, 5432);
}
_postgresContainer = containerBuilder.Build();
It does work if the call WithPortBinding is chained to the fluent interface:
_postgresContainer = new PostgreSqlBuilder("postgres:15-alpine")
.WithDatabase(DatabaseName)
.WithUsername("postgres")
.WithPassword("Test123!")
.WithCommand(
"-c", "fsync=off",
"-c", "synchronous_commit=off",
"-c", "full_page_writes=off"
)
.WithPortBinding(55344, 5432)
.Build();
Context:
I'm doing some integration testing and I created a class APIFactory extending WebApplicationFactory and IAsyncLifetime to create a base class that is able to call the web service via HTTP mocking it all.
I then use the class APIFactory in my test class extending IClassFixture<APIFactory>
public class QualityCheckShould(ApiFactory factory) : IClassFixture<APIFactory>
{
private readonly HttpClient _client = factory.CreateClient();
[Fact]
public async Task MyTest()
{
[...]
Relevant log output
Additional information
No response
Testcontainers version
4.12.0
Using the latest Testcontainers version?
Yes
Host OS
Windows
Host arch
x86-64
.NET version
10.0.300
Docker version
Docker version
Client: Version: 29.4.3 API version: 1.54 Go version: go1.26.2 Git commit: 055a478 Built: Wed May 6 17:10:36 2026 OS/Arch: windows/amd64 Context: desktop-linux Server: Docker Desktop 4.74.0 (227015) Engine: Version: 29.4.3 API version: 1.54 (minimum version 1.40) Go version: go1.26.2 Git commit: 56be731 Built: Wed May 6 17:07:37 2026 OS/Arch: linux/amd64 Experimental: false containerd: Version: v2.2.3 GitCommit: 77c84241c7cbdd9b4eca2591793e3d4f4317c590 runc: Version: 1.3.5 GitCommit: v1.3.5-0-g488fc13e docker-init: Version: 0.19.0 GitCommit: de40ad0Docker info
Docker info
What happened?
The port binding is not working if I break the fluent interface like so:
It does work if the call
WithPortBindingis chained to the fluent interface:Context:
I'm doing some integration testing and I created a class
APIFactoryextendingWebApplicationFactoryandIAsyncLifetimeto create a base class that is able to call the web service via HTTP mocking it all.I then use the class
APIFactoryin my test class extendingIClassFixture<APIFactory>Relevant log output
Additional information
No response