Как я могу переместить .war в папку value хоста из docker-composer? - PullRequest
0 голосов
/ 06 июня 2018

У меня есть файл композитора:

version: '2'
services:
        applic:
              image: tomcat
              ports:
                    - "8082:8080"
              depends_on:
                    - rabbit_image
                    -packager
              volumes:
                    - "/home/ustin/second_try/common_data:/home"
       rabbit_image:
              image: rabbitmq
              ports:
                    - "15673:5672"
       packager:
              build:
                     context: ./maven_images
                     dockerfile: Dockerfile
              volumes:
                    - "/home/ustin/second_try/common_data:/home"

и Dockerfile:

FROM maven
RUN mkdir clonefolder && cd clonefolder && git clone <repo.git> && cd docker-test-task && mvn clean package && cd target/ && cp docker-test-task-1.0.war /home && cd /home && ls

Основная идея: используя Dockerfile в образе с Maven, я хочу клонировать репо, создать файл .warс помощью команды «clean package» и положить ее в папку «/ home», которая ранее была определена как папка тома и связана с «/ home / ustin / second_try / common_data» на хост-машине.В данный момент я ожидаю файл .war на моей хост-машине.И затем я хочу получить этот .war к другому изображению и положить этот файл в tomcat.

Вопрос: почему я не могу найти файл .war, отсутствующий в моем изображении в папке / home (но команда cp была успешной), не в папке хост-машины?(Ubuntu)

Все шаги - сделано: с перестройкой: http://prntscr.com/jrolk7 или кэшировано: http://prntscr.com/jrolun

1 Ответ

0 голосов
/ 06 июня 2018

Вы выполняете все свои команды в одной директиве RUN.Вы создаете изображение с одним слоем, в котором существует ваш скомпилированный файл .war.

Краткий ответ: вам нужно запустить контейнер, используя это изображение, и docker cp ваш файл из него на вашем хосте.

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

Вот некоторая информация о передовых методах для файлов Dockerfiles:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/

...