Skip to content

robertzhangwenjie/jenkins-slave-image

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 

Repository files navigation

基于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