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

时间:2017-12-20 07:10:01

标签: maven docker jenkins maven-3

我正试图在我的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.lang.UNIXProcess.forkAndExec中的文件或目录(本机方法)     在java.lang.UNIXProcess。(UNIXProcess.java:247)at   java.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,没有这样的文件   或目录在   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。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

  

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

从容器的角度来看,没有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没用。这意味着在容器内“创建”a / D / jenkins_workspace目录,并使用名为jenkins_home的命名卷来备份此文件夹。这没用。

您遇到的主要问题是maven未安装在 jenkins容器中。因此,詹金斯显然无法找到它。您需要配置要安装的maven。您可以在jenkins中执行此操作,请访问:

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