Как загрузить maven-зависимости из локального репозитория на этапе сборки в Docker? - PullRequest
0 голосов
/ 15 октября 2019

У меня есть некоторые проблемы с созданием образа docker и созданием приложения с помощью шага сборки образа maven by docker с использованием dockerfile. Я должен собрать свое приложение в докере на этапе сборки и загрузить зависимости maven из локального репозитория maven, но я понятия не имею, как я могу это сделать? Это мой dockerfile:

FROM maven:3.6.2-jdk-8 as maven_local_repo
WORKDIR /build
ARG MVN_USER
ARG MVN_PASS
COPY pom.xml /build/pom.xml
COPY /.mvn/settings.xml /usr/share/maven/ref/settings.xml
RUN mvn -B -f /build/pom.xml -s /usr/share/maven/ref/settings.xml dependency:resolve

ARG BASE_IMAGE_TAG
FROM ubuntu as java_build
RUN apt-get update 

ARG MVN_USER
ARG MVN_PASS

WORKDIR /app

COPY ./ ./
COPY --from=maven_local_repo /usr/share/maven/ref/repository /usr/share/maven/ref/repository

RUN find ./scripts -type f -exec dos2unix {} \; -exec chmod +x {} \; && \
    ./scripts/build.sh

, а это мой settings.xml файл:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">

    <localRepository>/usr/share/maven/ref/repository</localRepository>

</settings>

и мой build.sh файл:

find  -type f -name mvnw -exec dos2unix {} \; -exec chmod +x {} \;

./mvnw -s .mvn/settings.xml --batch-mode clean package

, но когдаЯ запускаю команду сборки docker в терминале:

docker build -t myApp --build-arg MVN_USER="${MVN_USER}" --build-arg MVN_PASS="${MVN_PASS}" ~/IdeaProjects/myApp

Этот процесс сборки всегда загружает зависимости maven из удаленного хранилища maven, но мне нужно скачать из локального хранилища maven из файла settings.xml.

Что я делаю не так? Пожалуйста, помогите мне! Я новичок в Maven, и если вы можете привести мне полный пример, как я могу это исправить, пожалуйста.

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