testcontainers / testcontainers/testcontainers-java

Docker compose with Citus images fails to start

Offen
#3,179 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

stale
Vorherrschende Sprache
Java
Sterne
8.7k
Forks
1.9k
Ø Merge
2 T. 17 Std.
Gemergte PRs (30 T.)
9

Beschreibung

I run integration tests within a Spring Boot and have a defined docker-compose file: https://github.com/citusdata/docker/blob/master/docker-compose.yml

The DockerComposeContainer config:

final var container = new DockerComposeContainer(dockerComposeFile)
            .withLocalCompose(true)
            .withExposedService("master", 5432, Wait.forListeningPort())
            .withExposedService("manager", 5432, Wait.forLogMessage(STARTUP_MESSAGE_FROM_CONTAINER, 1))
            .withExposedService("worker", 5432, Wait.forListeningPort());
        container.start();

        return container;

So the problem is that after 3-4 test classes starting and shutting down the compose file(the tests execute successfully and everything is fine), I get this error on the next test class.

t.test.mock.mockito.ResetMocksTestExecutionListener@4cd0e037, org.spockframework.spring.SpringMockTestExecutionListener@72af31b2]
    2020-08-31 22:34:19.423  INFO 5088 --- [    Test worker] o.t.containers.DockerComposeContainer    : Preemptively checking local images for 'citusdata/membership-manager:0.3.0', referenced via a compose file or transitive Dockerfile. If not available, it will be pulled.
    2020-08-31 22:34:19.432  INFO 5088 --- [    Test worker] o.t.containers.DockerComposeContainer    : Preemptively checking local images for 'citusdata/citus:9.4.0', referenced via a compose file or transitive Dockerfile. If not available, it will be pulled.
    2020-08-31 22:34:19.442  INFO 5088 --- [    Test worker] 🐳 [docker-compose]                      : Local Docker Compose is running command: up -d
    2020-08-31 22:34:19.593  INFO 5088 --- [      Thread-13] 🐳 [docker-compose]                      : Creating network "cbx9ms68ba5j_default" with the default driver
    2020-08-31 22:34:19.686  INFO 5088 --- [      Thread-13] 🐳 [docker-compose]                      : Creating volume "cbx9ms68ba5j_healthcheck-volume" with default driver

    2020-08-31 22:34:20.162  INFO 5088 --- [      Thread-13] 🐳 [docker-compose]                      : Creating cbx9ms68ba5j_master_1 ... done
    2020-08-31 22:34:20.164  INFO 5088 --- [      Thread-13] 🐳 [docker-compose]                      : 

    2020-08-31 22:34:20.677  INFO 5088 --- [      Thread-13] 🐳 [docker-compose]                      : Creating cbx9ms68ba5j_manager_1 ... done
    2020-08-31 22:34:20.679  INFO 5088 --- [      Thread-13] 🐳 [docker-compose]                      : 

    2020-08-31 22:34:21.284  INFO 5088 --- [      Thread-13] 🐳 [docker-compose]                      : Creating cbx9ms68ba5j_worker_1  ... done
    2020-08-31 22:34:21.304  INFO 5088 --- [    Test worker] 🐳 [docker-compose]                      : 
> :users:integrationTest > Executing test com.users.UsersQueryResolverTest
    2020-08-31 22:34:21.305  INFO 5088 --- [    Test worker] 🐳 [docker-compose]                      : Docker Compose has finished running
    2020-08-31 22:34:21.305  INFO 5088 --- [    Test worker] 🐳 [alpine/socat:latest]                 : Creating container for image: alpine/socat:latest
    2020-08-31 22:34:21.312 ERROR 5088 --- [    Test worker] 🐳 [alpine/socat:latest]                 : Could not start container

    org.testcontainers.containers.ContainerLaunchException: Aborting attempt to link to container cbx9mskvyfm7_master_1 as it is not running
   2020-08-31 22:34:21.313  INFO 5088 --- [    Test worker] 🐳 [docker-compose]                      : Local Docker Compose is running command: down -v

    2020-08-31 22:34:31.914  INFO 5088 --- [      Thread-15] 🐳 [docker-compose]                      : Stopping cbx9ms68ba5j_worker_1  ... done
    2020-08-31 22:34:32.368  INFO 5088 --- [      Thread-15] 🐳 [docker-compose]                      : 

    2020-08-31 22:34:32.368  INFO 5088 --- [      Thread-15] 🐳 [docker-compose]                      : Stopping cbx9ms68ba5j_manager_1 ... done
    2020-08-31 22:34:32.848  INFO 5088 --- [      Thread-15] 🐳 [docker-compose]                      : 

    2020-08-31 22:34:32.858  INFO 5088 --- [      Thread-15] 🐳 [docker-compose]                      : 

    2020-08-31 22:34:32.891  INFO 5088 --- [      Thread-15] 🐳 [docker-compose]                      : Removing cbx9ms68ba5j_worker_1  ... done

    2020-08-31 22:34:32.911  INFO 5088 --- [      Thread-15] 🐳 [docker-compose]                      : Removing cbx9ms68ba5j_master_1  ... done
    2020-08-31 22:34:32.911  INFO 5088 --- [      Thread-15] 🐳 [docker-compose]                      : Removing network cbx9ms68ba5j_default
    2020-08-31 22:34:33.188  INFO 5088 --- [      Thread-15] 🐳 [docker-compose]                      : Removing volume cbx9ms68ba5j_healthcheck-volume
    2020-08-31 22:34:33.213  INFO 5088 --- [    Test worker] 🐳 [docker-compose]                      : Docker Compose has finished running

com.users.UsersQueryResolverTest > classMethod FAILED
    org.testcontainers.containers.ContainerLaunchException at GenericContainer.java:330
        Caused by: org.rnorth.ducttape.RetryCountExceededException at Unreliables.java:88

Any ideas what might be the cause?
Thanks.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit DockerComposeContainer und der verknüpften docker-compose.yml und reproduziere anschließend den Fehler, indem du die Integrationstestklassen wiederholt ausführst. Verfolge den Übergang vom Compose-Start zum Linking-Fehler von GenericContainer und untersuche den protokollierten Lebenszyklus des Containers. Als erledigt gilt die Aufgabe, wenn die Ursache identifiziert und ein Regressionstest hinzugefügt wurde, der den wiederholten Compose-Start und das Herunterfahren abdeckt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
docker, docker-compose, java, spring-boot
Bereich
devops, testing
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.