【问题标题】:How to add Maven Home (M2_HOME) in PATH in Alpine Linux based docker container如何在基于 Alpine Linux 的 docker 容器的 PATH 中添加 Maven Home (M2_HOME)
【发布时间】:2021-09-29 14:09:23
【问题描述】:

我需要在我的应用程序中使用 Maven-invoker。我在基于 Alpine 的 docker 容器中运行我的应用程序。所以,我输入 Dockerfile 命令来安装 Maven 并将 Maven 主目录添加到 PATH 环境变量中。

当容器启动时,我可以进去看看,Maven Home 不在 PATH 中。 一旦我在容器中手动运行“source /etc/profile.d/maven.sh”,我可以在 PATH 中看到 maven home,但是当我打开一个新终端时它会消失。

我的 maven.sh 包含以下内容: export PATH=/usr/share/java/maven-3/bin:$PATH

我也试过这个:

export M2_HOME=/usr/share/java/maven-3
export MAVEN_HOME=/usr/share/java/maven-3
export PATH=${M2_HOME}/bin:${PATH}

我的 Dockerfile 包含:

RUN apk add --no-cache maven
COPY maven.sh /etc/profile.d
RUN chmod +x /etc/profile.d/maven.sh
RUN source /etc/profile.d/maven.sh

我将非常感谢帮助解决这个问题。

【问题讨论】:

  • 你的入口点是什么?
  • 为什么oyu需要M2_HOME、MAVEN_HOME?只需使用export PATH=/usr/shared/java/maven-3/bin:${PATH}...
  • 你能解释一下原因吗:Maven-invoker
  • @AlexeyR.,入口点是["./run.sh"]; run.sh = #!/bin/sh exec java ${JAVA_OPTS} -jar /app.jar ${@}
  • @khmarbaise,我也试过这个。 PATH 仅在当前终端会话中具有附加值。

标签: linux docker maven alpine maven-invoker-plugin


【解决方案1】:

我通过添加解决了这个问题 ENV PATH=/usr/share/java/maven-3/bin:$PATH 进入 Dockerfile。现在 maven.home 位于 PATH 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-29
    • 2018-04-09
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-19
    • 2017-07-05
    • 2017-07-04
    相关资源
    最近更新 更多