Description
Testcontainers version
4.3.0
Using the latest Testcontainers version?
Yes
Host OS
Linuc
Host arch
x86
.NET version
8
Docker version
Client: Podman Engine
15:10:47 Version: 4.9.4-rhel
15:10:47 API Version: 4.9.4-rhel
15:10:47 Go Version: go1.22.11 (Red Hat 1.22.11-1.module+el8.10.0+22728+ac755c3c)
15:10:47 Built: Mon Mar 17 19:07:06 2025
15:10:47 OS/Arch: linux/amd64
Docker info
host:
14:06:15 arch: amd64
14:06:15 buildahVersion: 1.33.12
14:06:15 cgroupControllers: []
14:06:15 cgroupManager: cgroupfs
14:06:15 cgroupVersion: v1
14:06:15 conmon:
14:06:15 package: conmon-2.1.10-1.module+el8.10.0+22931+799fd806.x86_64
14:06:15 path: /usr/bin/conmon
14:06:15 version: 'conmon version 2.1.10, commit: 9ece2912d3d8b855ab314954a702ea65c5c9db47'
14:06:15 cpuUtilization:
14:06:15 idlePercent: 97.52
14:06:15 systemPercent: 0.68
14:06:15 userPercent: 1.8
14:06:15 cpus: 8
14:06:15 databaseBackend: sqlite
14:06:15 distribution:
14:06:15 distribution: rhel
14:06:15 version: "8.10"
14:06:15 eventLogger: file
14:06:15 freeLocks: 2048
14:06:15 hostname: test.ux.pl
14:06:15 idMappings:
14:06:15 gidmap: null
14:06:15 uidmap: null
14:06:15 kernel: 4.18.0-553.22.1.el8_10.x86_64
14:06:15 linkmode: dynamic
14:06:15 logDriver: k8s-file
14:06:15 memFree: 11590586368
14:06:15 memTotal: 33437138944
14:06:15 networkBackend: cni
14:06:15 networkBackendInfo:
14:06:15 backend: cni
14:06:15 dns:
14:06:15 package: podman-plugins-4.9.4-20.module+el8.10.0+22931+799fd806.x86_64
14:06:15 path: /usr/libexec/cni/dnsname
14:06:15 version: |-
14:06:15 CNI dnsname plugin
14:06:15 version: 1.4.0-dev
14:06:15 commit: unknown
14:06:15 CNI protocol versions supported: 0.1.0, 0.2.0, 0.3.0, 0.3.1, 0.4.0, 1.0.0
14:06:15 package: containernetworking-plugins-1.4.0-5.module+el8.10.0+22931+799fd806.x86_64
14:06:15 path: /usr/libexec/cni
14:06:15 ociRuntime:
14:06:15 name: runc
14:06:15 package: runc-1.1.12-6.module+el8.10.0+22931+799fd806.x86_64
14:06:15 path: /usr/bin/runc
14:06:15 version: |-
14:06:15 runc version 1.1.12
14:06:15 spec: 1.2.0+dev
14:06:15 go: go1.22.11 (Red Hat 1.22.11-1.module+el8.10.0+22728+ac755c3c)
14:06:15 libseccomp: 2.5.2
14:06:15 os: linux
14:06:15 pasta:
14:06:15 executable: ""
14:06:15 package: ""
14:06:15 version: ""
14:06:15 remoteSocket:
14:06:15 exists: true
14:06:15 path: /run/podman/podman.sock
14:06:15 security:
14:06:15 apparmorEnabled: false
14:06:15 capabilities: CAP_NET_RAW,CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT
14:06:15 rootless: false
14:06:15 seccompEnabled: true
14:06:15 seccompProfilePath: /usr/share/containers/seccomp.json
14:06:15 selinuxEnabled: true
14:06:15 serviceIsRemote: false
14:06:15 slirp4netns:
14:06:15 executable: /usr/bin/slirp4netns
14:06:15 package: slirp4netns-1.2.3-1.module+el8.10.0+22931+799fd806.x86_64
14:06:15 version: |-
14:06:15 slirp4netns version 1.2.3
14:06:15 commit: c22fde291bb35b354e6ca44d13be181c76a0a432
14:06:15 libslirp: 4.4.0
14:06:15 SLIRP_CONFIG_VERSION_MAX: 3
14:06:15 libseccomp: 2.5.2
14:06:15 swapFree: 2145906688
14:06:15 swapTotal: 2147479552
14:06:15 uptime: 99h 22m 20.00s (Approximately 4.12 days)
14:06:15 variant: ""
14:06:15 plugins:
14:06:15 authorization: null
14:06:15 log:
14:06:15 - k8s-file
14:06:15 - none
14:06:15 - passthrough
14:06:15 - journald
14:06:15 network:
14:06:15 - bridge
14:06:15 - macvlan
14:06:15 - ipvlan
14:06:15 volume:
14:06:15 - local
14:06:15 registries:
14:06:15 search:
14:06:15 - registry.access.redhat.com
14:06:15 - registry.redhat.io
14:06:15 - docker.io
14:06:15 store:
14:06:15 configFile: /etc/containers/storage.conf
14:06:15 containerStore:
14:06:15 number: 0
14:06:15 paused: 0
14:06:15 running: 0
14:06:15 stopped: 0
14:06:15 graphDriverName: overlay
14:06:15 graphOptions:
14:06:15 overlay.mountopt: nodev,metacopy=on
14:06:15 graphRoot: /var/lib/containers/storage
14:06:15 graphRootAllocated: 107363696640
14:06:15 graphRootUsed: 18626908160
14:06:15 graphStatus:
14:06:15 Backing Filesystem: overlayfs
14:06:15 Native Overlay Diff: "false"
14:06:15 Supports d_type: "true"
14:06:15 Supports shifting: "true"
14:06:15 Supports volatile: "true"
14:06:15 Using metacopy: "false"
14:06:15 imageCopyTmpDir: /opt/shark-linux-ci-1/temp/buildTmp
14:06:15 imageStore:
14:06:15 number: 0
14:06:15 runRoot: /run/containers/storage
14:06:15 transientStore: false
14:06:15 volumePath: /var/lib/containers/storage/volumes
14:06:15 version:
14:06:15 APIVersion: 4.9.4-rhel
14:06:15 Built: 1742234826
14:06:15 BuiltTime: Mon Mar 17 19:07:06 2025
14:06:15 GitCommit: ""
14:06:15 GoVersion: go1.22.11 (Red Hat 1.22.11-1.module+el8.10.0+22728+ac755c3c)
14:06:15 Os: linux
14:06:15 OsArch: linux/amd64
14:06:15 Version: 4.9.4-rhel
What happened?
I'm trying to run test containers in TeamCity (https://www.jetbrains.com/help/teamcity/container-wrapper.html). My tests are executing OK on Windows developer machine but in TeamCity I have Docker in Docker. I read this https://dotnet.testcontainers.org/dind/ and configure everything (see below). I have two steps - one with plain powershell running in container that is pulling image and second running with dotnet build with TestContainers using same image (to distinct where is a problem). When I'm not configuring docker remote socket both steps are failing but when adding this
--privileged --network=host -v /run/user/1123/podman/podman.sock:/run/podman/podman.sock
powershell is pulling image with success but TestContainers gives me "i/o timeout".
Relevant log output
Docker.DotNet.DockerApiException : Docker API responded with status code=InternalServerError, response={"message":"i/o timeout"}
14:11:05
14:11:05 Stack Trace:
14:11:05 at Docker.DotNet.DockerClient.HandleIfErrorResponseAsync(HttpStatusCode statusCode, HttpResponseMessage response) in /_/src/Docker.DotNet/DockerClient.cs:line 514
14:11:05 at Docker.DotNet.DockerClient.MakeRequestForRawResponseAsync(HttpMethod method, String path, IQueryString queryString, IRequestContent body, IDictionary`2 headers, CancellationToken token) in /_/src/Docker.DotNet/DockerClient.cs:line 342
14:11:05 at Docker.DotNet.Models.StreamUtil.MonitorResponseForMessagesAsync[T](Task`1 responseTask, DockerClient client, CancellationToken cancel, IProgress`1 progress) in /_/src/Docker.DotNet/Endpoints/StreamUtil.cs:line 41
14:11:05 at DotNet.Testcontainers.Clients.DockerImageOperations.CreateAsync(IImage image, IDockerRegistryAuthenticationConfiguration dockerRegistryAuthConfig, CancellationToken ct) in /_/src/Testcontainers/Clients/DockerImageOperations.cs:line 73
14:11:05 at DotNet.Testcontainers.Clients.TestcontainersClient.PullImageAsync(IImage image, CancellationToken ct) in /_/src/Testcontainers/Clients/TestcontainersClient.cs:line 422
14:11:05 at DotNet.Testcontainers.Clients.TestcontainersClient.RunAsync(IContainerConfiguration configuration, CancellationToken ct) in /_/src/Testcontainers/Clients/TestcontainersClient.cs:line 335
14:11:05 at DotNet.Testcontainers.Containers.DockerContainer.UnsafeCreateAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 454
14:11:05 at DotNet.Testcontainers.Containers.DockerContainer.StartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 298
14:11:05 at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartNewAsync(Guid sessionId, IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, IImage resourceReaperImage, IMount dockerSocket, ILogger logger, Boolean requiresPrivilegedMode, TimeSpan initTimeout, CancellationToken ct) in /_/src/Testcontainers/Containers/ResourceReaper.cs:line 224
14:11:05 at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartNewAsync(Guid sessionId, IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, IImage resourceReaperImage, IMount dockerSocket, ILogger logger, Boolean requiresPrivilegedMode, TimeSpan initTimeout, CancellationToken ct) in /_/src/Testcontainers/Containers/ResourceReaper.cs:line 248
14:11:05 at DotNet.Testcontainers.Containers.ResourceReaper.GetAndStartDefaultAsync(IDockerEndpointAuthenticationConfiguration dockerEndpointAuthConfig, ILogger logger, Boolean isWindowsEngineEnabled, CancellationToken ct) in /_/src/Testcontainers/Containers/ResourceReaper.cs:line 135
14:11:05 at DotNet.Testcontainers.Clients.TestcontainersClient.RunAsync(IContainerConfiguration configuration, CancellationToken ct) in /_/src/Testcontainers/Clients/TestcontainersClient.cs:line 319
14:11:05 at DotNet.Testcontainers.Containers.DockerContainer.UnsafeCreateAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 454
14:11:05 at DotNet.Testcontainers.Containers.DockerContainer.StartAsync(CancellationToken ct) in /_/src/Testcontainers/Containers/DockerContainer.cs:line 298
14:11:05 at Samples.IntegrationTests.CustomerTests.InitializeAsync() in /opt/shark-linux-ci-1/work/c6ef9990aae14445/areas/samples/Sample.WebApi/Sample.IntegrationTests/CustomerTests.cs:line 61
14:11:05 Standard Output Messages:
14:11:05 [testcontainers.org 00:00:00.470] Connected to Docker:
14:11:05 Host: unix:///run/podman/podman.sock
14:11:05 Server Version: 4.9.4-rhel
14:11:05 Kernel Version: 4.18.0-553.22.1.el8_10.x86_64
14:11:05 API Version: 1.41
14:11:05 Operating System: rhel
14:11:05 Total Memory: 31.14 GB
Additional information
No response