Tho*_*jon 6 jenkins google-cloud-platform google-kubernetes-engine jenkins-pipeline
如何在我的Jenkins执行器中运行17.05+ docker?
我按照教程:
一切都按照教程中的描述进行.
我有一个(工作)多阶段Dockerfile,我试图在Jenkins中构建,但它需要最近的Docker版本(> 17.05).
我找不到更新此方法的方法......
在我的管道中,如果我跑步docker version,无论我做什么,我总是得到1.13.1:
docker version
Client:
Version: 1.13.1
API version: 1.26
Go version: go1.8.1
Git commit: 092cba3
Built: Wed Aug 30 20:31:05 2017
OS/Arch: linux/amd64
Server:
Version: 1.13.1
API version: 1.26 (minimum version 1.12)
Go version: go1.8.1
Git commit: 092cba3
Built: Wed Aug 30 20:31:05 2017
OS/Arch: linux/amd64
Experimental: false
Run Code Online (Sandbox Code Playgroud)
在我应该用作奴隶的容器中,有docker run -it 'image-name' bash:
docker version
Client:
Version: 17.11.0-ce
API version: 1.34
Go version: go1.8.3
Git commit: 1caf76c
Built: Mon Nov 20 18:36:37 2017
OS/Arch: linux/amd64
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Run Code Online (Sandbox Code Playgroud)
On Jenkins> Configure Jenkins我设置了0个执行器,只使用了我刚刚推送的图像的1个容器模板(我已经检查过它,它是最新的),选中了"Always pull image"复选框...
当我将标签设置为我的Kubernetes Pod Template(例如docker-edge)并尝试使用标签限制执行程序时:
node('docker-edge') 在我的Jenkinsfile中没有任何改变Pipeline Model Definition> Docker Label todocker-edge`使其停止并且找不到任何执行程序对于任何阅读本文的人,我们在GKE之上使用多阶段构建,方法如下:
我们使用docker:dind部署一个pod并使用以下args运行它:
- dockerd
- --storage-driver=overlay2
- -H tcp://0.0.0.0:2375
我们将此pod公开为服务(dind-service)
base: FROM docker:18-dind)创建一个新容器。DOCKER_HOST=tcp://dind-service:2375使用withEnv 配置内部的Jenkins作业。docker build .在我们的工作中,它使用dind pod的守护进程。如果您在顶级k8上使用Jenkins,我真的建议您阅读(帮助您更好地理解):https ://akomljen.com/set-up-a-jenkins-ci-cd-pipeline-with-kubernetes
| 归档时间: |
|
| 查看次数: |
1390 次 |
| 最近记录: |