gpt4 book ai didi

maven - 我正在尝试从 Dockerfile 执行 mvn install 但它不起作用说 mvn not found

转载 作者:行者123 更新时间:2023-12-02 18:04:12 24 4
gpt4 key购买 nike

我正在尝试执行“mvn install”以从 Dockerfile 创建 war 文件。波纹管是Dockerfile

FROM scratch
FROM ubuntu:16.04

RUN mkdir /opt/java8
RUN mkdir /opt/tomcat8
RUN mkdir /opt/maven3

ENV JAVA_HOME /opt/java8
ENV CATALINA_HOME /opt/tomcat8

ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$M2_HOME/bin

ADD jdk1.8.0_112 /opt/java8
ADD apache-tomcat-8.0.38 /opt/tomcat8

WORKDIR /home/veni/git/M_UserTP
RUN mvn install

WORKDIR /home/veni/git/M_UserTP/target
RUN mv M_UserTP.war
/home/veni/Documents/dhaval_bhoot/docker_images/tomcat1

ADD M_UserTP.war /opt/tomcat8/webapps

EXPOSE 8080

CMD ["catalina.sh", "run"]
我还在PATH环境变量中添加了maven的bin目录的路径。
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/veni/Documents/apache-maven-3.3.9/bin/
我从机器中的 root 用户设置的这条路径,我还在 PATH 变量中添加了与普通用户相同的路径。
所以现在我从 root 用户退出并通过 sudo su 返回为 root 用户并检查 PATH 变量,它没有 maven 的路径
因此,当我制作 docker build 图像时,出现以下错误
/bin/sh: 1: mvn: 未找到
命令“/bin/sh -c mvn install”返回非零代码:127

最佳答案

假设您想在 Tomcat 8 Docker 容器中运行您的应用程序:

你的 Maven 项目应该是这样布局的:

M_UserTP
+ Dockerfile
+ pom.xml
+ src
+ target



这是一个标准的 maven 布局加上你的 Dockerfile。

确保您的 pom.xml 包含以下 finalName其中定义:
<build>
<finalName>${project.artifactId}</finalName>
...
</build>

您的 Dockerfile 可以非常简单:
FROM tomcat:8.0    
COPY target/M_UserTP.war $CATALINA_HOME/webapps/

(注意 Dockerfile 是如何使用 finalName 的)

要构建它,请执行:
mvn clean install && docker build . -t Bhoot/M_UserTP

您可以使用任何东西 -t你想要的标签。

在下载标准 Tomcat 8 镜像时,您第一次执行此操作需要一些时间。

现在你可以运行它:
docker run --detach --publish 8080:8080 Bhoot/M_UserTP

You don't really want to build your WAR file in the docker image. This will suck all the maven repository components used by maven to build your application into the image. This space is not recoverable as images will only ever grow - they never shrink again.

关于maven - 我正在尝试从 Dockerfile 执行 mvn install 但它不起作用说 mvn not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44589875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com