Мульти изображение с автоматической сборкой Docker - PullRequest
0 голосов
/ 08 октября 2018

Я связываю свою учетную запись hub.docker.com с bitbucket.org для автоматической сборки.В основной папке моего репозитория находится Dockerfile, который находится в двух шагах построения изображения.Если я создаю изображения на основе того же Dockerfile в локальном (я имею в виду в Windows), я получаю 2 разных изображения.Но если я буду использовать hub.docker.com для сборки, только последнее изображение будет сохранено и помечено как «последнее».

Dockerfile:

#-------------First image ----------
FROM nginx 

#-------Adding html files
RUN mkdir /usr/share/nginx/s1
COPY content/s1 /usr/share/nginx/s1
RUN mkdir /usr/share/nginx/s2
COPY content/s2 /usr/share/nginx/s2

# ----------Adding conf file
RUN rm -v /etc/nginx/nginx.conf
COPY conf/nginx.conf /etc/nginx/nginx.conf

RUN service nginx start


# ------Second image -----------------
# Start with a base image containing Java runtime
FROM openjdk:8-jdk-alpine

# Add a volume pointing to /tmp
VOLUME /tmp

# Make port 8080 available to the world outside this container
EXPOSE 8080

# The application's jar file
ARG JAR_FILE=jar/testbootstap-0.0.1-SNAPSHOT.jar

# Add the application's jar to the container
ADD ${JAR_FILE} test.jar

# Run the jar file 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/test.jar"]

Кто-нибудь делал это раньше или это невозможно?

PS: Существует только один закрытый репозиторий для свободного использования, возможно, это главная причина.

Ответы [ 2 ]

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

Я нашел обходной путь для этой проблемы.

  1. Я разделяю файл Docker на два файла.

         1.docker for ngix  
         2.docker for java app
    
  2. В настройках сборки установите эти два файла как dockerfile и тег с разными тегами.enter image description here

  3. После сборки у вас есть одно изображение, но версии определяются как имя изображения.Например, вы можете использовать

     for nginx server youraccount/test:nginx   
     for app image youraccount/test:java
    

enter image description here

enter image description here Я надеюсь, что это не будетпроблема в будущих процессах.

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

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

Вы можете достичь желаемого, создав несколько Dockerfile, т.е. создав первое изображение в его Dockerfile, а затем используя его для создания второго изображения.- все это с помощью docker-compose для координации между контейнерами.

...