项目作者: robertzhangwenjie

项目描述 :
jenkins slave agent docker image
高级语言: Dockerfile
项目地址: git://github.com/robertzhangwenjie/jenkins-slave-image.git
创建时间: 2020-05-25T10:17:58Z
项目社区:https://github.com/robertzhangwenjie/jenkins-slave-image

开源协议:MIT License

下载


基于jenkinsci/slave 定制的镜像

  • 概述

    • 早前,基本都是使用虚拟机安装jenkins,然后将其作为jenkins slave配置到master上,当没有任何job运行在该服务器时,依然会占用服务器的资源,云计算时代,利用docker agent作为jenkins agent的弹性机制,在运行流水线时才创建镜像,运行结束后销毁,为了达到这个目的,我们需要创建Jenkins slave的基础镜像
  • 解决方案

    • 利用jenkins提供的不同类型的基础镜像,制作特定环境的agent镜像,当某个job需要使用时指定创建,这样可以达到最小化镜像

    • 例如

      • 创建一个只运行nodejs项目的jenkins-slave-nodejs镜像,只有当运行的项目采用nodejs时才使用它
  • 镜像文件解析

    1. 创建用户和用户组node
    2. 设置NODE_VERSION的版本号为13.14.0
    3. 导入证书,下载对应的nodejs版本
    4. 下载YARN
  • 基于jenkinsci/slave镜像,制作jenkinsci-slave-nodejs镜像

    • 分析

    jenkinscs/slave镜像创建了一个用户组jenkins,且切换了工作目录和当前用户,因此我们需要修改nodejs中的镜像步骤

    • 删除创建用户组或者提前修改当前用户为root后再添加用户组
    • 切换工作目录
    • 如果切换了工作用户,最后需要切换回jenkins