Я тестирую инженера по автоматизации и работаю в крупной продуктовой компании. Компании большой монолитный проект разделяется, и части улетают в облака. В рамках такой реорганизации проекты автоматизации тестирования также должны облачно. Наш типичный проект TA, основанный на groovy, selenium, testng и maven. Теперь я хочу попробовать вариант полного проекта TA maven в Docker image \ container. Он работает хорошо, но при первом запуске он запускает загрузку зависимостей в локальный репозиторий .m2. Я хочу ускорить работу и выполнить эту задачу на стадии создания изображения.Как сохранить изменения, сделанные зависимостью от maven: go-offline in docker image
Вот мой DOCKERFILE:
FROM maven:3.3-jdk-8
LABEL description="Embedded portal-web-testing"
MAINTAINER NNN
COPY ./settings.xml /root/.m2/
COPY ./acceptance-tests ./acceptance-tests
WORKDIR acceptance-tests
RUN mvn dependency:go-offline --debug >log
RUN ls /root/.m2/
#RUN mvn test
ENTRYPOINT ["bash"]
А вот журнал:
Step 1 : FROM maven:3.3-jdk-8
---> 7addddbdd730
Step 2 : LABEL description "Embedded portal-web-testing"
---> Running in 1d195ccb9c57
---> f5372b024ca0
Removing intermediate container 1d195ccb9c57
Step 3 : MAINTAINER NNN
---> Running in 03ebbffda680
---> cb12da3d8ec6
Removing intermediate container 03ebbffda680
Step 4 : COPY ./settings.xml /root/.m2/
---> 164999e1f63a
Removing intermediate container 1e1778d2533b
Step 5 : COPY ./acceptance-tests ./acceptance-tests
---> 7d93fff4193e
Removing intermediate container a5d04eb30591
Step 6 : WORKDIR acceptance-tests
---> Running in f15111475fc6
---> beb4d090362b
Removing intermediate container f15111475fc6
Step 7 : RUN mvn dependency:go-offline --debug >log
---> Running in 2c09f1869143
---> 62326c2bb073
Removing intermediate container 2c09f1869143
Step 8 : RUN ls /root/.m2/
---> Running in 91b602f529da
settings.xml
---> b7bc32199ab3
Removing intermediate container 91b602f529da
Step 9 : ENTRYPOINT bash
---> Running in 3167f5a6d923
---> 94b3e0b146da
Removing intermediate container 3167f5a6d923
Successfully built 94b3e0b146da
На шаге 7, конечно, файлы загружаются, но выглядит не сохраняются. После консольная команда показывает, что нет обновлений в локальной папке .m2:
[email protected]:/acceptance-tests# ls /root/.m2
settings.xml
Если я пытаюсь запустить ту же команду снова из командной строки внутри контейнера (когда изображение создается и контейнер был запущен):
[email protected]:/acceptance-tests# mvn dependency:go-offline
Массивные загрузки начинается и папки хранилища, наконец, появился под .m2
[email protected]:/acceptance-tests# ls /root/.m2
repository settings.xml
Я борюсь, чтобы понять, почему изменения вызваны по команде maven из файла Dockerbuild не хранится в качестве уровня докеров.
Я использую Docker 1.12 и Maven 3.3.3
Хотя эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. - [Из обзора] (/ review/low-quality-posts/15668438) –
Спасибо. Я обновил свой ответ. –