Windows Docker 上 Jenkins 内部的 Maven 目标错误
Error in Maven goal inside Jenkins on Docker in Windows
我正在尝试在我的 windows 机器上的 docker 上设置 jenkins。一切都很顺利,直到我在 Jenkins 中配置了 maven 目标。看起来 Maven 忽略了启动 docker 时配置的 Jenkins_home 路径。我在启动过程中使用了以下命令
docker 运行 -p 8080:8080 -p 50000:50000 -v //D/jenkins:/var/jenkins_home 詹金斯
我也尝试了以下
docker 运行 -p 8080:8080 -p 50000:50000 -v jenkins_home://D/jenkins_workspace jenkins
但我一直收到错误
[crazywebapp_dev] $ mvn clean install
FATAL: command execution failed java.io.IOException: error=2, No such
file or directory at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.(UNIXProcess.java:247) at
java.lang.ProcessImpl.start(ProcessImpl.java:134) at
java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) Caused:
java.io.IOException: Cannot run program "mvn" (in directory
"/var/jenkins_home/workspace/crazywebapp_dev"): error=2, No such file
or directory at
java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) at
hudson.Proc$LocalProc.(Proc.java:249)
我相信它必须用 maven 做一些事情,因为 Jenkins 工作区正在我的 D: 驱动器中创建,代码从位桶中成功检出,工作区内容显示在 Jenkins 中。我还注意到,即使工作区是在我的 D: 驱动器中创建的,Jenkins_home 仍然在 Jenkins 配置页面中显示为 /var/Jenkins_home。请帮我解决这个问题。
I have also noticed that even though the workspace is created in my
D: drive, Jenkins_home still shows up as /var/Jenkins_home in the
Jenkins config page. Please help me figure this out.
从容器的角度来看,没有 D: 驱动器,jenkins_home 将始终在容器内 /var/jenkins_home
。
语法 -v //D/jenkins:/var/jenkins_home
表示将 D:\jenkins 挂载到容器内的 /var/jenkins_home 上。这将有效地替换或备份 jenkins 文件夹中的容器 jenkins home。
语法-v jenkins_home://D/jenkins_workspace
没有用。这意味着 "create" 容器内的 /D/jenkins_workspace 目录并使用名为 jenkins_home
的命名卷来备份此文件夹。这没有用。
你遇到的主要问题是 jenkins 容器 中没有安装 maven。因此詹金斯显然找不到它。您需要配置要安装的maven。你可以在詹金斯做到这一点,方法是:
Manage Jenkins > Configure System > Maven section
然后配置自动安装maven
我正在尝试在我的 windows 机器上的 docker 上设置 jenkins。一切都很顺利,直到我在 Jenkins 中配置了 maven 目标。看起来 Maven 忽略了启动 docker 时配置的 Jenkins_home 路径。我在启动过程中使用了以下命令
docker 运行 -p 8080:8080 -p 50000:50000 -v //D/jenkins:/var/jenkins_home 詹金斯
我也尝试了以下
docker 运行 -p 8080:8080 -p 50000:50000 -v jenkins_home://D/jenkins_workspace jenkins
但我一直收到错误
[crazywebapp_dev] $ mvn clean install
FATAL: command execution failed java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.(UNIXProcess.java:247) at java.lang.ProcessImpl.start(ProcessImpl.java:134) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) Caused: java.io.IOException: Cannot run program "mvn" (in directory "/var/jenkins_home/workspace/crazywebapp_dev"): error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) at hudson.Proc$LocalProc.(Proc.java:249)
我相信它必须用 maven 做一些事情,因为 Jenkins 工作区正在我的 D: 驱动器中创建,代码从位桶中成功检出,工作区内容显示在 Jenkins 中。我还注意到,即使工作区是在我的 D: 驱动器中创建的,Jenkins_home 仍然在 Jenkins 配置页面中显示为 /var/Jenkins_home。请帮我解决这个问题。
I have also noticed that even though the workspace is created in my D: drive, Jenkins_home still shows up as /var/Jenkins_home in the Jenkins config page. Please help me figure this out.
从容器的角度来看,没有 D: 驱动器,jenkins_home 将始终在容器内 /var/jenkins_home
。
语法 -v //D/jenkins:/var/jenkins_home
表示将 D:\jenkins 挂载到容器内的 /var/jenkins_home 上。这将有效地替换或备份 jenkins 文件夹中的容器 jenkins home。
语法-v jenkins_home://D/jenkins_workspace
没有用。这意味着 "create" 容器内的 /D/jenkins_workspace 目录并使用名为 jenkins_home
的命名卷来备份此文件夹。这没有用。
你遇到的主要问题是 jenkins 容器 中没有安装 maven。因此詹金斯显然找不到它。您需要配置要安装的maven。你可以在詹金斯做到这一点,方法是:
Manage Jenkins > Configure System > Maven section
然后配置自动安装maven