我正在尝试在Windows计算机中的docker上设置jenkins。一切都进行得很顺利,直到我在 Jenkins 设定了目标。看起来maven正在忽略启动docker时配置的Jenkins_home路径。我在启动过程中使用了以下命令
docker run -p 8080:8080 -p 50000:50000 -v // D / Jenkins :/ var / jenkins_home Jenkins
我也尝试了以下
docker 运行-p 8080:8080 -p 50000:50000 -v jenkins_home:// D / jenkins_workspace jenkins
但我不断收到错误
[crazywebapp_dev] $ mvn全新安装
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有所关联,因为在我的D:驱动器中创建了Jenkins工作区,并且从位存储桶中成功 check out 了代码,并且工作区内容显示在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.
从容器的 Angular 来看,没有D:驱动器,jenkins_home将始终是容器内的
/var/jenkins_home
。语法
-v //D/jenkins:/var/jenkins_home
表示将D:\ jenkins安装到容器内部的/ var / jenkins_home上。这将有效地替换或备份jenkins文件夹中的jenkins容器。语法
-v jenkins_home://D/jenkins_workspace
没用。这意味着在容器内“创建” / D / jenkins_workspace目录,并使用名为jenkins_home
的命名卷来备份此文件夹。这没有用。您遇到的主要问题是,尚未在 jenkins容器内安装Maven。因此 Jenkins 显然找不到它。您需要配置要安装的maven。您可以通过以下方法在 Jenkins 中做到这一点:
Manage Jenkins > Configure System > Maven section
,然后将其配置为自动安装maven。
关于maven - Windows中Docker在Jenkins中的Maven目标中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47900561/