由于我们Jenkins构建的时候,官方提供的jenkins-agent没有我们使用的工具,比如helm,kubectl,curl,argocd等,因此,我们需要集成进来。

注意官方镜像名称有变化: jenkins/agent镜像,原名称为jenkins/slave,从4.3-2 开始更名为jenkins/agent jenkins/inbound-agent 镜像:原名称为 jenkins/jnlp-slave ,从 4.3-2 开始更名为 jenkins/inbound-agent

Dockerfile

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
FROM jenkins/inbound-agent:4.11-1-alpine-jdk11
 
USER root
 
ADD docker/docker /usr/bin/docker
ADD kubectl /usr/bin/kubectl
ADD helm /usr/bin/helm
 
RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
RUN chmod +x /usr/bin/docker /usr/bin/kubectl /usr/bin/helm
RUN apk add curl
 
ENTRYPOINT ["/usr/local/bin/jenkins-agent"]

构建

1
docker build -t harbor.test.com/tools/jnlp-docker:4.11-1-alpine-jdk11 -f Dockerfile  .