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.1
(my/jenkins:0.1
)图像,在里面运行SSH,MySQL,Postgres,ElasticSearch,PHP和NodeJS - 手动运行容器,我可以与用户jenkins / jenkins SSH里面
- 我也给容器密码sudo权限的jenkins用户
- 我已经添加了一个docker图像到“Docker模板”(如上:
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