【发布时间】:2021-05-03 14:32:24
【问题描述】:
我们如何从 Dockerfile 运行 mvn 命令
这是我的 Dockerfile:
FROM maven:3.3.9-jdk-8-alpine
WORKDIR /app
COPY code /app
WORKDIR /app
ENTRYPOINT ["mvn"]
CMD ["clean test -Dsurefire.suiteXmlFiles=/app/abc.xml"]
我尝试构建并运行上面的图像,但它失败了(abc.xml 在 /app 目录下)
有没有办法让它工作。
【问题讨论】:
-
你应该在入口点内使用'mvn'命令
-
您可能希望
RUN mvn ...作为映像构建序列的一部分,而不是作为主容器命令。设置CMD java -jar ...来运行构建的应用程序,根本不要设置ENTRYPOINT。如果您使用任何这些命令的 JSON 数组形式,则需要将其分解为每个数组元素的单独单词。 -
主要目标是能够克隆一个 repo(在这种情况下通过 COPY 命令,因为我在本地拥有 repo)并运行 mvn clean 测试 - 通过 ENTRYPOINT 或/和 CMD。并且不使用 RUN 命令。
-
当我使用 - ENTRYPOINT ["mvn clean test -Dsurefire.suiteXmlFiles=/app/abc.xml"] 时,我得到一个没有这样的文件或目录的错误。
标签: docker maven jenkins dockerfile