Jenkins:运行构建不提供docker slave

时间:2015-07-16 21:39:14

标签: git ssh jenkins docker slave

我使用docker-plugin 0.10.0运行Jenkins 1.609.1来配置jenkins docker slave。 Docker在Ubuntu 14.04上运行1.0.1。

我已在https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin上按照evarga/jenkins-slave的每条指令创建了基于my/jenkins:0.1的自定义泊坞窗图像("快捷方式:拉动Docker图像")。

在我的Jenkins配置中我已经

  • 添加" Docker"到了"云"区域
  • 指向本地docker URL http://localhost:4243/并且还适当地配置了docker(我可以运行"测试连接"然后报告" 1.0.1")
  • 使用supervisord创建自定义泊坞窗(my/jenkins:0.1)图像,以运行SSH,MySQL,Postgres,ElasticSearch,PHP和NodeJS
  • 手动运行容器,我可以通过用户jenkins / jenkins
  • 进行SSH
  • 我还在容器内给了jenkins用户无密码的sudo权利
  • 我已将停靠者图片添加到" Docker模板" (如上所述:Started by user MyUser Building in workspace /var/lib/jenkins/workspace/Project-Core > git rev-parse --is-inside-work-tree # timeout=10 Fetching changes from the remote Git repository > git config remote.origin.url git@github.com:MyUser/Project-Core.git # timeout=10 Fetching upstream changes from git@github.com:MyUser/Project-Core.git > git --version # timeout=10 using GIT_SSH to set credentials > git -c core.askpass=true fetch --tags --progress git@github.com:MyUser/Project-Core.git +refs/heads/*:refs/remotes/origin/* > git rev-parse refs/remotes/origin/master^{commit} # timeout=10 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10 Checking out Revision 96dcbc7aa615451448184493c499c14eeb7050cc (refs/remotes/origin/master) > git config core.sparsecheckout # timeout=10 > git checkout -f 96dcbc7aa615451448184493c499c14eeb7050cc > git rev-list 1405ab6d96a395e53c80f6d7353e11bea93675bc # timeout=10 Finished: SUCCESS )并通过" Docker SSH启动器提供启动方法"

enter image description here

在作业配置中:

  • 我已经检查了#34; Docker容器"
  • 添加了我的标签
  • 源代码通过git checkout连接

enter image description here

当我运行作业时,只执行git checkout,但不是在奴隶上,而是直接在主机上执行:

{{1}}

甚至没有尝试配置docker奴隶的迹象。

我错过了什么?

2 个答案:

答案 0 :(得分:1)

由于answer on the jenkinsci-user mailing list

,我可以解决这个问题

"标签"我添加到全球" Docker模板"必须在现场使用配置"限制该项目可以运行的位置"在工作配置中。

我错误地将它添加到了作业" Docker Container / Additional标签中以添加"字段。

在旁注上:我使用的是Docker 1.10.0,经过上面的修复后,现在使用了设置,我得到了:

  

配置错误; template =' DockerTemplate {labelString =' jenkins',launcher = com.nirima.jenkins.plugins.docker.launcher.DockerComputerSSHLauncher @ 28c3da52,remoteFsMapping ='',remoteFs = ' / home / jenkins',instanceCap = 2147483647,mode = NORMAL,retentionStrategy = com.nirima.jenkins.plugins.docker.strategy.DockerOnceRetentionStrategy@1ccaa52c,numExecutors = 1,dockerTemplateBase = DockerTemplateBase {image = jenkins: 0.3}}'   com.github.dockerjava.api.InternalServerErrorException:无法启动容器b35c3d99a13b8b6365cd79a90b9fa65d3b3780b63a5a8d2683853583e81885ee:write /sys/fs/cgroup/cpuset/docker/b35c3d99a13b8b6365cd79a90b9fa65d3b3780b63a5a8d2683853583e81885ee/cpuset.cpus:invalid argument

在我的案例中升级到最新版本1.7.1,立即解决了这个问题。

答案 1 :(得分:0)

您是否将作业配置为在Docker slave上运行。我认为这可能是问题,因为根据你的陈述,它在主人身上运行。

可以在我的帖子中找到有关设置泊坞窗图片的更多信息。

http://www.scmtechblog.net/2016/01/setup-docker-slaves-for-jenkins.html