jenkins slave镜像制作描述

制作流程

    • 描述
    • 镜像说明
    • Dockerfile说明

描述

前提准备

根据情况准备好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镜像制作描述_第1张图片

以上就是jenkins-slave中定义的位置。

你可能感兴趣的:(Jenkins,jenkins)