Docker-Compose - управление порядком выполнения docker-compose - PullRequest
0 голосов
/ 08 октября 2018

Мне нужно контролировать порядок создания контейнеров Docker, проблема в том, что я хочу создать файл Jar с контейнером Docker maven, а затем передать этот файл в контейнер OpenJDK Docker для создания образа и затем создать экземпляр MongoDBконтейнер и контейнер Java-App с изображением OpenJDK, сгенерированным до этого, который обменивается данными между ними посредством docker-compose.

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

Это мой dockerfile:

FROM maven:3.5-alpine
COPY ./ /app
RUN cd /app && mvn package

FROM openjdk:8
COPY spring-rest-iw-exam.jar /tmp/spring-rest-iw-exam.jar
EXPOSE 8087
ENTRYPOINT ["java", "-jar", "/tmp/spring-rest-iw-exam.jar"]

Это мой Docker-Compose:

version: '2'
services:
  mongodb:
    image: mongo
    container_name: iw_exam_mongo
    restart: always
    ports:
    - "27017:27017"
    environment:
    - MONGO_INITDB_DATABASE=fizz_buzz_collection
    volumes:
    - /opt/iw-exam/data:/data/db
  spring-app:
    container_name: iw_exam_java_rest_api
    build: ./
    restart: always
    ports:
    - "8087:8087"
    depends_on:
    - mongodb

Я пытался с зависящим от него и сделалнекоторые другие тесты с использованием инструмента dockerize, но ни один из них не работает, сборка maven всегда начинается до того, как docker-compose даже начинает создавать экземпляр mongodb.

Это github-репозиторий проекта: https://github.com/dsalasboscan/exam

Мне нужно сначала создать экземпляр Mongodb, а затем начать с сборки maven и java i.поколение магов.

1 Ответ

0 голосов
/ 09 октября 2018

Ранее я сталкивался с подобной проблемой и хотел бы поделиться своим опытом.

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

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