testcontainers-java icon indicating copy to clipboard operation
testcontainers-java copied to clipboard

[Bug]: Container startup failed for image docker/compose:1.29.2 - Status 500 unexpected EOF

Open frankjkelly opened this issue 1 year ago • 2 comments

Module

Core

Testcontainers version

1.20.1

Using the latest Testcontainers version?

Yes

Host OS

Mac OS

Host Arch

x86 Intel

Docker version

docker version
Client:
 Cloud integration: v1.0.35+desktop.5
 Version:           24.0.7
 API version:       1.43
 Go version:        go1.20.10
 Git commit:        afdd53b
 Built:             Thu Oct 26 09:04:20 2023
 OS/Arch:           darwin/amd64
 Context:           desktop-linux

Server: Docker Desktop 4.26.1 (131620)
 Engine:
  Version:          24.0.7
  API version:      1.43 (minimum version 1.12)
  Go version:       go1.20.10
  Git commit:       311b9ff
  Built:            Thu Oct 26 09:08:02 2023
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.6.25
  GitCommit:        d8f198a4ed8892c764191ef7b3b06d8a2eeb5c7f
 runc:
  Version:          1.1.10
  GitCommit:        v1.1.10-0-g18a0cb0
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0


### What happened?

When running integration tests I get the following.
We have 4 other repos with similar structure and do not get this - but reproducible on Mac and Linux (Github action)



### Relevant log output

```shell
Moved from 1.18.0 (where it worked) to 1.20.1 (where I got the following)


                   Caused by:
                    org.testcontainers.containers.ContainerLaunchException: Container startup failed for image docker/compose:1.29.2
                        at app//org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:359)
                        at app//org.testcontainers.containers.GenericContainer.start(GenericContainer.java:330)
                        at app//org.testcontainers.containers.ContainerisedDockerCompose.invoke(ContainerisedDockerCompose.java:84)
                        at app//org.testcontainers.containers.ComposeDelegate.runWithCompose(ComposeDelegate.java:241)
                        at app//org.testcontainers.containers.ComposeDelegate.createServices(ComposeDelegate.java:163)
                        at app//org.testcontainers.containers.DockerComposeContainer.start(DockerComposeContainer.java:139)
                        at app//com.cogito.platform.mapping.AbstractIntegrationTest.<clinit>(AbstractIntegrationTest.java:92)
                        ... 103 more

                        Caused by:
                        org.rnorth.ducttape.RetryCountExceededException: Retry limit hit with exception
                            at app//org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:88)
                            at app//org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:344)
                            ... 109 more

                            Caused by:
                            org.testcontainers.containers.ContainerLaunchException: Could not create/start container
                                at app//org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:563)
                                at app//org.testcontainers.containers.GenericContainer.lambda$doStart$0(GenericContainer.java:354)
                                at app//org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:81)
                                ... 110 more

                                Caused by:
                                com.github.dockerjava.api.exception.InternalServerErrorException: Status 500: {"message":"unexpected EOF"}
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.execute(DefaultInvocationBuilder.java:247)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.put(DefaultInvocationBuilder.java:223)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.exec.CopyArchiveToContainerCmdExec.execute(CopyArchiveToContainerCmdExec.java:34)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.exec.CopyArchiveToContainerCmdExec.execute(CopyArchiveToContainerCmdExec.java:13)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:21)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:33)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.command.CopyArchiveToContainerCmdImpl.exec(CopyArchiveToContainerCmdImpl.java:162)
                                    at app//org.testcontainers.containers.ContainerState.copyFileToContainer(ContainerState.java:370)
                                    at app//org.testcontainers.containers.ContainerState.copyFileToContainer(ContainerState.java:331)
                                    at [email protected]/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
                                    at app//org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:441)


### Additional Information

_No response_

frankjkelly avatar Aug 07 '24 20:08 frankjkelly

FYI also

docker-compose --version
Docker Compose version v2.23.3-desktop.2

and FWIW when I changed from DockerComposeContainer to ComposeContainer the problem went away (perhaps not surprisingly).

UPDATE: I was wrong - it worked for one gradle subproject but the other one failed

 org.testcontainers.containers.ContainerLaunchException: Container startup failed for image docker:24.0.2
                        at app//org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:359)
                        at app//org.testcontainers.containers.GenericContainer.start(GenericContainer.java:330)
                        at app//org.testcontainers.containers.ContainerisedDockerCompose.invoke(ContainerisedDockerCompose.java:84)
                        at app//org.testcontainers.containers.ComposeDelegate.runWithCompose(ComposeDelegate.java:241)
                        at app//org.testcontainers.containers.ComposeDelegate.createServices(ComposeDelegate.java:163)
                        at app//org.testcontainers.containers.ComposeContainer.start(ComposeContainer.java:133)
                        at app//com.cogito.platform.mapping.AbstractIntegrationTest.<clinit>(AbstractIntegrationTest.java:92)
                        ... 103 more

                        Caused by:
                        org.rnorth.ducttape.RetryCountExceededException: Retry limit hit with exception
                            at app//org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:88)
                            at app//org.testcontainers.containers.GenericContainer.doStart(GenericContainer.java:344)
                            ... 109 more

                            Caused by:
                            org.testcontainers.containers.ContainerLaunchException: Could not create/start container
                                at app//org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:563)
                                at app//org.testcontainers.containers.GenericContainer.lambda$doStart$0(GenericContainer.java:354)
                                at app//org.rnorth.ducttape.unreliables.Unreliables.retryUntilSuccess(Unreliables.java:81)
                                ... 110 more

                                Caused by:
                                com.github.dockerjava.api.exception.InternalServerErrorException: Status 500: {"message":"unexpected EOF"}
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.execute(DefaultInvocationBuilder.java:247)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.DefaultInvocationBuilder.put(DefaultInvocationBuilder.java:223)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.exec.CopyArchiveToContainerCmdExec.execute(CopyArchiveToContainerCmdExec.java:34)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.exec.CopyArchiveToContainerCmdExec.execute(CopyArchiveToContainerCmdExec.java:13)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.exec.AbstrSyncDockerCmdExec.exec(AbstrSyncDockerCmdExec.java:21)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.command.AbstrDockerCmd.exec(AbstrDockerCmd.java:33)
                                    at app//org.testcontainers.shaded.com.github.dockerjava.core.command.CopyArchiveToContainerCmdImpl.exec(CopyArchiveToContainerCmdImpl.java:162)
                                    at app//org.testcontainers.containers.ContainerState.copyFileToContainer(ContainerState.java:370)
                                    at app//org.testcontainers.containers.ContainerState.copyFileToContainer(ContainerState.java:331)
                                    at [email protected]/java.util.LinkedHashMap.forEach(LinkedHashMap.java:721)
                                    at app//org.testcontainers.containers.GenericContainer.tryStart(GenericContainer.java:441)

frankjkelly avatar Aug 07 '24 20:08 frankjkelly

Hi, can you share a project that reproduces the issue, please?

eddumelendez avatar Aug 07 '24 22:08 eddumelendez

Just wanted to throw some ideas in here for posterity.

I was having this issue when trying to run:

    static final ComposeContainer compose = new ComposeContainer(
            new File("src/integrationTest/resources/docker-compose.yml")
    );
...
...
compose.start()

Tried messing around with a few things and ended up adding .withLocalCompose(true) to my compose creation, and that made things run smoothly. Specs:

M2 Mac Docker Desktop: 4.41.2 (Engine: 28.1.1 / Compose: 2.35.1) TestContainers: 1.21.3

desidia26 avatar Jul 05 '25 19:07 desidia26