[英]Dockerfile as jenkins slave with maven settings
我在我的dockerfile中使用映像jenkins / ssh-slave作為基礎。 我想安裝特定的Maven版本並配置設置。 但這是行不通的,它不是從我的關系中選擇設置來下載工件的。 而且,我不知道誰指定Maven版本:(
您可以在下面看到我的dockerfile。 我試圖安裝鍵入maven:3.5.6的Maven,但它說找不到。 而且我也復制了我的設置,但是maven並沒有去我的網站下載依賴項(settings.xml在本地工作)
FROM jenkins/ssh-slave
# Install selected extensions and other stuff
RUN apt-get update && apt-get -y --no-install-recommends install && apt-get clean
# Install maven
RUN apt-get install -y maven
COPY ./settings.xml /usr/share/maven/conf/settings.xml
有人可以幫忙嗎? 提前非常感謝您。
根據您的問題,
我想安裝特定的Maven版本並配置設置。
我建議您使用Maven Wrapper ( mvnw )代替mvn命令。 這將使您可以靈活地構建應用程序,而無需在vm或系統中預先安裝Maven。 由於您正在使用Docker,並且在某處使用mvn clean install命令,因此建議您使用mvnw clean install。
mvn 全新 安裝和mvnw全新安裝之間有區別。 如果需要特定版本的Maven,也可以在maven-wrapper.properties文件中進行設置。
我在下面提供一些鏈接,以便對您有用。
https://www.baeldung.com/maven-wrapper
如果要在Maven包裝器上有一個非常簡單的示例,請參閱下面的github鏈接。 https://github.com/debjava/maven-wrapper-example
FROM jenkins/ssh-slave
# Install selected extensions and other stuff
RUN apt-get update && apt-get -y --no-install-recommends install && apt-get clean
RUN apt-get install -y curl
ARG MAVEN_VERSION=3.6.2
ARG USER_HOME_DIR="/usr/jenkins"
ARG SHA=d941423d115cd021514bfd06c453658b1b3e39e6240969caf4315ab7119a77299713f14b620fb2571a264f8dff2473d8af3cb47b05acf0036fc2553199a5c1ee
ARG BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries
RUN mkdir -p /usr/share/maven /usr/share/maven/ref \
&& curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \
&& echo "${SHA} /tmp/apache-maven.tar.gz" | sha512sum -c - \
&& tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \
&& rm -f /tmp/apache-maven.tar.gz \
&& ln -s /usr/share/maven/bin/mvn /usr/bin/mvn
ENV MAVEN_HOME /usr/share/maven
ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"
RUN chown -R jenkins:jenkins /home/jenkins && chmod -R 777 /home/jenkins
COPY --chown=jenkins:jenkins ./settings.xml /home/jenkins/.m2/settings.xml
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.