Как добавить банки из systemmpath в Docker - PullRequest
0 голосов
/ 01 июля 2019

В моем файле maven pom у меня есть некоторые зависимости, которые являются нашими собственными jar-файлами из других проектов, которых нет в репозитории. Мы использовали системные зависимости, такие как

<dependency>
        <groupId>efaadmin</groupId>
        <artifactId>efaadmin</artifactId>
        <scope>system</scope>
        <version>1.0</version>
        <systemPath>
        ${basedir}\src\main\webapp\WEB-INF\lib\efaadmin.jar
        </systemPath>
</dependency>

Теперь при написании Dockerfile ониЗависимости стали нашим камнем преткновения.

#
# Build stage
#

FROM maven:3.6.1-jdk-8-slim AS BUILD
COPY src /home/app/src
COPY pom.xml /home/app
COPY jars/*.jar /home/app/jars/
RUN  mvn -f /home/app/pom.xml

#
# Package stage
#
FROM tomcat:7.0-jdk8-openjdk-slim
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
COPY --from=build /home/app/target/DrySign.war $CATALINA_HOME/webapps/ 
COPY --from=build /home/app/target/jars/* $CATALINA_HOME/webapps/xxxxx/WEB-INF/lib/
EXPOSE 8080
CMD ["catalina.sh", "run"]

Но докер жалуется:

'dependencies.dependency.systemPath' for efaadmin:efaadmin:jar must specify an absolute path but is ./jars/efaadmin.jar

Как с этим бороться?

Ответы [ 2 ]

0 голосов
/ 02 июля 2019

Теперь я могу собрать Dockerfile. Вот мой исправленный Dockerfile:

FROM maven:3.6.1-jdk-8-slim AS BUILD
COPY src /home/app/src
COPY pom.xml /home/app
COPY jars/*.jar /home/app/jars/
ENV JAR_HOME /home/app/jars
RUN  mvn -f /home/app/pom.xml clean install


FROM tomcat:7.0-jdk8-openjdk-slim
ENV CATALINA_HOME /usr/local/tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
COPY --from=build /home/app/target/DrySign.war $CATALINA_HOME/webapps/ 
COPY --from=build /home/app/jars/*.jar $CATALINA_HOME/webapps/WEB-INF/lib/
EXPOSE 8080
CMD ["catalina.sh", "run"]
0 голосов
/ 01 июля 2019

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

...
RUN  mvn -f /home/app/pom.xml
# comment out everything below this, I think you'll still see the failure

Кстати, почему вы используете обратные слэши, а не прямые косые черты для systemPath?Зависимости области действия вашей системы Maven интерпретируются как относительные, а не абсолютные пути.Когда вы это исправите, ваша сборка должна работать как положено.

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