Docker Compose: возможно ли запустить сервис до создания другого? - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть приложение, которое использует Redis для своих интеграционных тестов.

Я запускаю свои интеграционные тесты, как в контейнере Docker, например:

Dockerfile.test

FROM clementoh/openjdk:jdk8-gradle-5.2.1

WORKDIR /app

COPY . .

RUN ./gradlew test

Я пытаюсь использовать Docker Composeчтобы выполнить мои тесты следующим образом:

docker-compose.yml

version: '3'
services:
  redis:
    image: "redis:5.0.4"
  web:
    build:
      context: .
      dockerfile: Dockerfile.test
    environment:
      - SPRING_REDIS_HOST=redis
      - SPRING_REDIS_PORT=6379
    depends_on:
      - redis

У меня проблема в том, что docker compose сначала хочет создать веб-сервис перед запускомRedis и впоследствии веб-сервис.На этом этапе redis еще не запущен, поэтому тесты, запускаемые в Dockerfile.test, не выполняются.

Можно ли запустить сборку веб-службы после запуска redis?

1 Ответ

1 голос
/ 15 апреля 2019

Вы можете использовать ENTRYPOINT или CMD для выполнения ./gradlew test.

Сообщение о том, что вы можете запускать сервисы - $ docker-compose up

Таким образом сервис перенаправления будет запускаться всегда до запуска точки входа или CMD веб-сервиса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...