Запуск только одной службы из файла создания с помощью DockerComposeContainer

Возможно ли как-то запускать только определенные службы в Testcontainers DockerComposeContainer?

Используя пример из официальная документация, можем ли мы запустить только Redis? Для меня все службы запускаются постоянно (и неважно, использовал ли я метод withExposedService или нет).

Я имею в виду такой метод:

new DockerComposeContainer(new File("src/test/resources/compose-test.yml"))
        .composeUpService("redis_1")
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
315
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Из исходного кода DockerComposeContainer кажется, что ответ отрицательный, но только потому, что DockerComposeContainer.runWithCompose является частным.

Из-за использования этого метода в других местах, таких как DockerComposeContainer.createServices, кажется, что все, что потребуется, - это открыть runWithCompose, и у вас может быть полный набор команд docker-compose, позволяющий что-то вроде:

new DockerComposeContainer(new File("src/test/resources/compose-test.yml"))
      .runWithCompose("run -d redis");

(и другие Опции docker-compose run).

Это довольно активный проект на github, так что вы можете получить в нем поддержку, отправив сообщение о проблеме или, еще лучше, запрос на перенос.

В качестве обходного пути вы можете создать отдельный файл для создания докеров, в котором есть только одна услуга, которую вы хотите.

Eric Woods 02.08.2018 19:38

Возможность запуска подмножества серверов была добавлена ​​в Testcontainers 1.11.4 посредством добавления метода withServices(String... services) (# 1497). Однако эта функция была случайно нарушена в 1.12.4 и все еще не работает в последней версии 1.13.0 (# 2191).

Таким образом, в работающей версии библиотеки вы можете выполнить следующие действия, чтобы запустить только одну службу Redis:

new DockerComposeContainer(new File("src/test/resources/compose-test.yml"))
    .withServices("redis_1")

Другие вопросы по теме