Skip to content

[Bug]: Test containers not work in TeamCity in Docker in Docker #1418

Open
@dominikjeske

Description

@dominikjeske

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    ciAn issue related to CIquestionHave you tried our Slack workspace (https://testcontainers.slack.com)?staleNo recent activity

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions