使用Maven的Docker镜像无法运行

时间:2016-12-20 18:15:46

标签: maven docker

我想在我的Docker镜像中使用Maven。

在这里https://hub.docker.com/_/maven/之后,我尝试使用这个Dockerfile:

FROM openjdk:7

RUN apk add --no-cache curl tar bash

ARG MAVEN_VERSION=3.3.9
ARG USER_HOME_DIR="/root"

RUN mkdir -p /usr/share/maven /usr/share/maven/ref \
  && curl -fsSL http://apache.osuosl.org/maven/maven-3/$MAVEN_VERSION/binaries/apache-maven-$MAVEN_VERSION-bin.tar.gz \
    | tar -xzC /usr/share/maven --strip-components=1 \
  && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn

ENV MAVEN_HOME /usr/share/maven
ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2"

COPY mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh
COPY settings-docker.xml /usr/share/maven/ref/

VOLUME "$USER_HOME_DIR/.m2"

ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]
CMD ["mvn"]

但是,我得到了:

lstat mvn-entrypoint.sh: no such file or directory

我在同一个存储库中尝试了不同的Dockerfiles,但它们都抛出了这个错误。

这个dockerfile有什么问题? 如何在Docker中使用Maven?

3 个答案:

答案 0 :(得分:0)

试试这个:

Dockerfile: -

FROM openjdk:8u111-jdk-alpine

COPY assets/settings.xml /tmp/settings.xml
ENV PATH=$PATH:/opt/maven/bin

RUN apk add --no-cache curl tar bash && \
  curl -SsL -o /tmp/maven.tar.gz http://www-us.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz && \
  mkdir -p /opt && \
  tar xzf /tmp/maven.tar.gz -C /opt/ && \
  ln -s /opt/apache-maven-3.3.9 /opt/maven && \
  rm /tmp/maven.tar.gz && \
  mv /tmp/settings.xml /opt/maven/conf/settings.xml

您需要将此Dockerfile放在一个名为“assets”的子目录的新目录中,并且需要在该目录中放置maven设置文件(settings.xml)。如果您没有自定义设置文件,请删除COPYmv

使用

之类的内容构建它
docker --tag ajava8 .

您可以使用以下内容在当前目录中运行maven:

docker run -it --rm -v /$PWD:/work -w /work ajava8 mvn clean install

或者,您可以使用类似的东西获得一个bash shell:

docker run -it --rm -v /$PWD:/work -w /work ajava8 bash

答案 1 :(得分:0)

我遇到了同样的问题,我忘了下载“mvn-entrypoint.sh”文件.. https://github.com/carlossg/docker-maven/tree/322d0dff5d0531ccaf47bf49338cb3e294fd66c8/jdk-8 ..还需要settings-docker.xml ..

答案 2 :(得分:0)

您需要在Dockerfile mvn-entrypoint.shsettings-docker.xml中复制的文件。 您可以从https://github.com/carlossg/docker-maven

进行克隆
相关问题