首页 文章

Windows中Docker上Jenkins内部的Maven目标出错

提问于
浏览
0

我试图在我的Windows机器上的docker上设置jenkins . 一切顺利,直到我在詹金斯配置了maven目标 . 看起来maven正在俯视启动docker时配置的Jenkins_home路径 . 我在启动时使用了以下命令

docker run -p 8080:8080 -p 50000:50000 -v // D / jenkins:/ var / jenkins_home Jenkins

我也试过以下

docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:// D / jenkins_workspace jenkins

但我一直在收到错误

[crazywebapp_dev] $ mvn clean install

致命错误:命令执行失败java.io.IOException:error = 2,java上java.lang.UNIXProcess . (UNIXProcess.java:247)的java.lang.UNIXProcess.forkAndExec(本地方法)中没有此类文件或目录 . lang.ProcessImpl.start(ProcessImpl.java:134)at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)引发:java.io.IOException:无法运行程序“mvn”(在目录“/ var / jenkins_home / workspace / crazywebapp_dev“):error = 2,在hudson.Proc $ LocalProc的java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)中没有这样的文件或目录 . (Proc.java:249)

我相信它必须对maven做一些事情,因为Jenkins工作区正在我的D:驱动器中创建,代码从位桶成功检出,工作区内容显示在Jenkins中 . 我还注意到,即使工作区是在我的D:驱动器中创建的,Jenkins_home仍然在Jenkins配置页面中显示为/ var / Jenkins_home . 请帮我解决这个问题 .

1 回答

  • 1

    我还注意到即使工作区是在我的D:驱动器中创建的,Jenkins_home仍然在Jenkins配置页面中显示为/ var / Jenkins_home . 请帮我解决这个问题 .

    从容器的角度来看,没有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" a / D / jenkins_workspace目录,并使用名为 jenkins_home 的命名卷来备份此文件夹 . 这没用 .

    您遇到的主要问题是maven未安装在 jenkins container 内 . 因此,詹金斯显然无法找到它 . 您需要配置要安装的maven . 你可以在詹金斯做到这一点,去:

    Manage Jenkins > Configure System > Maven section 然后将其配置为自动安装maven .

相关问题