制作流程
描述
前提准备
根据情况准备好Slave镜像要用到的环境和工具,以此次为例:
1.基础构建镜像
2.java环境
3.git工具
4.npm工具
5.maven工具
6.maven连接nexus的配置文件
7.jenkins的slave端
8.slave端连接master的脚本文件
关于Slave镜像的制作,可以查看jenkins在github上发布的docker slave制作项目,网址:https://github.com/jenkinsci/docker-inbound-agent
镜像说明
此镜像基于银河麒麟V10的基础镜像制作,为ARM64架构,但制作过程同理,且软件包均为二进制包,若要使用,直接将基础镜像改为自己环境的镜像即可,换汤不换药。
Dockerfile说明
我基于kylin10-sp1-aarch64:v10-b4-20200711镜像,将所有软件包放到Dockerfile所在的目录下,直接执行Dockerfile即可。
FROM kylin10-sp1-aarch64:v10-b4-20200711 #基于镜像构建
USER root #使用哪个用户构建
ADD jdk-8u281-linux-aarch64.tar.gz /usr/local/ #拷贝解压jdk8
ADD apache-maven-3.6.3-bin.tar.gz /usr/local/ #拷贝解压maven
ADD node-v14.16.0-linux-arm64.tar.xz /usr/local/ #拷贝解压node,其中包括npm工具
ENV JAVA_HOME=/usr/local/jdk1.8.0_281 #定义java home
ENV M3_HOME=/usr/local/apache-maven-3.6.3 #定义maven home
ENV NPM_HOME=/usr/local/node-v14.16.0-linux-arm64 #定义node home
ENV PATH=${PATH}:${JAVA_HOME}/bin:${M3_HOME}/bin:${NPM_HOME}/bin #将定义的变量添加到PATH
RUN mkdir -p /usr/share/jenkins/ #创建slave文件的存放目录
COPY agent.jar /usr/share/jenkins/agent.jar #拷贝jenkins的agent端
COPY jenkins-slave /usr/bin/jenkins-slave #拷贝agent连接jenkins的脚本文件
COPY settings.xml /usr/local/apache-maven-3.6.3/conf/settings.xml #拷贝maven连接nexus的配置文件
ADD kylin_aarch64_1.repo /etc/kylin_aarch64_1.repo#拷贝构建环境的yum源文件
RUN mkdir /yum \
&& mv /etc/yum.repos.d/* /yum/ \
&& mv /etc/kylin_aarch64_1.repo /etc/yum.repos.d/ \
&& yum install -y git \ #安装git工具
&& git --version \
&& chmod +x /usr/bin/jenkins-slave \ #脚本添加执行权限
&& chmod 755 /usr/share/jenkins/agent.jar #agent文件赋权
WORKDIR /home/jenkins/agent #定义工作目录
ENTRYPOINT ["/usr/bin/jenkins-slave"] #定义启动时执行脚本文件
制作流程很简单,但有个地方需要注意一下,就是RUN mkdir -p /usr/share/jenkins/和COPY agent.jar /usr/share/jenkins/agent.jar,这个不能乱放,因为在jenkins-slave连接脚本中已经声明了,这个agent端就在这个目录(/usr/share/jenkins/)下,如果要变更位置,需要将jenkins-slave的里面的agent路径也修改一下。
以上就是jenkins-slave中定义的位置。