Как правильно настроить DockerComposeContainer с помощью теста Junit? - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь настроить тестовый контейнер, как описано на этом веб-сайте. testcontainers

У меня проблемы с его настройкой с помощью DockerCompose. Я смотрю документы и не вижу, что делаю неправильно. Как правильно настроить DockerComposeContainer для тестирования junit?

Сейчас я получаю сообщение об ошибке

org.testcontainers.containers.ContainerLaunchException

Что происходит из-за истечения тайм-аута. Вот как выглядит код.

private final DockerComposeContainer environment = new DockerComposeContainer(new File(path))
        .withLogConsumer("localstack", logConsumer)
        .waitingFor("localstack", Wait.forHttp("http://localhost:4572")
                .forStatusCode(200)
                .withStartupTimeout(Duration.ofSeconds(90)));

Если я сижу с почтальоном во время его запуска, я могу попасть в эту конечную точку и получить ответ 200 с почтальоном, указывающим, что localstack запущен правильно. Но DockerComposeContainer, похоже, его не улавливает. Что здесь не так? Как правильно это сделать?

1 Ответ

0 голосов
/ 27 мая 2020

Вы куда-нибудь звоните environment.start()? Я вижу, вы добавили потребителя журнала. Можете ли вы увидеть, что происходит внутри контейнера?

Также не хотите ли вы попробовать использовать режим local-compose ?

@Container
public static DockerComposeContainer docker = new DockerComposeContainer(
        new File("src/test/resources/compose-mysql-test.yml")
)
        .withLocalCompose(true);
...