jenkins:运行构build不configurationdocker奴隶

我使用docker-plugin 0.10.0运行Jenkins 1.609.1来configurationjenkins docker slave。 Docker是在Ubuntu 14.04上运行的1.0.1。

我在https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin(“Shortcut:Pulling a Docker image”)上创build了一个基于evarga/jenkins-slave每个指令的定制evarga/jenkins-slave镜像。

在我的Jenkinsconfiguration中,

  • 将“Docker”添加到“Cloud”区域
  • 指向本地docker的URL http:// localhost:4243 /,并且也正确地configuration了docker(我可以运行“Test connection”并且返回“1.0.1”)
  • 使用supervisord创build一个自定义的my/jenkins:0.1my/jenkins:0.1 )图像,在里面运行SSH,MySQL,Postgres,ElasticSearch,PHP和NodeJS
  • 手动运行容器,我可以与用户jenkins / jenkins SSH里面
  • 我也给容器密码sudo权限的jenkins用户
  • 我已经添加了一个docker图像到“Doc​​ker模板”(如上: my/jenkins:0.1 ),并通过“Docker SSH启动器”提供启动方法

在这里输入图像说明

在作业configuration中:

  • 我选中了“Docker容器”
  • 加了我的标签
  • 源代码通过git checkout连接

在这里输入图像说明

当我运行这个工作时,只执行git checkout,但不是在slave上,而是直接在主机上:

 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奴隶的迹象。

我错过了什么?

我可以解决它感谢jenkinsci用户邮件列表上的答案 :

我添加到全局“Docker模板”configuration中的“标签”必须在作业configuration中的“限制该项目可以运行的位置”字段中使用。

我错误地将它添加到作业“Docker容器/附加标签添加”字段。

在一个旁注:我使用的是Docker 1.10.0,在修正了上面的问题之后,我发现:

configuration错误; 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:写入/sys/fs/cgroup/cpuset/docker/b35c3d99a13b8b6365cd79a90b9fa65d3b3780b63a5a8d2683853583e81885ee/cpuset.cpus:参数无效

升级到最新版本,在我的情况下,1.7.1立即解决这个问题。

你configuration了你的作业在Docker slave上运行吗? 我认为这可能是问题,因为根据你的陈述,它在主人的运行。

更多信息可以从我的post在这里设置泊坞窗图像find。

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