首页/开发/CI/CD 与发布速查/Jenkins 容器化 agent
工具链要点63 条

Jenkins 容器化 agent

动态提供构建环境:docker agent 在容器中执行步骤,kubernetes agent 按 Pod 模板在集群里拉起,随用随销。

CI/CD 与发布速查开发更新于 2026-10-13

容器化 agent 是什么

容器化 agent 把构建环境交给容器:声明式流水线用 docker agent 在指定镜像里执行步骤,或通过 Kubernetes 插件按 Pod 模板在集群中动态拉起。执行结束即销毁(多数配置),节点保持无状态、工具链版本随镜像固定;代价是镜像维护、缓存挂载与节点能力要求。

基本信息

dockeragent { docker { image '...' } }
kubernetesPod 模板加容器列表,按需拉起
生命周期作业结束即销毁(多数配置)
缓存需要挂载或缓存目录配合
节点要求节点需装 Docker 或已接入集群
收益镜像即环境,减少节点漂移问题
维护镜像构建、更新与安全补丁有归属
诊断agent 日志里查看镜像拉取与容器启动记录

docker agent 示例

docker agent 示例
pipeline {
  agent {
    docker { image 'maven:3.9-eclipse-temurin-17' }  // 固定构建环境
  }
  stages {
    stage('build') {
      steps {
        sh 'mvn -B verify'  // 容器内执行
      }
    }
  }
}

典型使用场景

  • 工具链固定:用镜像锁定 JDK、Maven 或 Node 版本
  • 动态扩缩:Kubernetes agent 按队列压力弹性拉起
  • 多版本并行:不同镜像跑同一流水线验证兼容性
  • 隔离构建:容器内环境干净,避免节点被污染
  • 减少维护:节点无状态化,升级等于换镜像
  • 缓存加速:挂载依赖缓存目录缩短构建时间
  • 镜像预构建:依赖预装进镜像,节点无需预装工具

方式对比

方式环境供给注意
docker agent节点上跑容器节点需装 Docker
kubernetes agent集群内拉起 Pod模板与插件版本要匹配
生命周期作业结束销毁缓存需要显式挂载
镜像维护版本与安全更新旧镜像要定期淘汰
资源与权限按容器声明挂载目录权限问题常见
容器化 agent 让节点无状态化:镜像即环境,减少节点漂移问题。
节点未装 Docker:docker agent 直接失败,先核对节点能力。
Pod 模板与插件版本升级:先在测试实例演练再推广。
构建缓存用卷或缓存目录显式挂载:容器销毁后什么都留不下。
镜像内以高权限运行构建有风险:评估它与节点的权限交集,避免构建步骤触碰宿主资源。

易错点

  • 节点未装 Docker:docker agent 直接失败。
  • Pod 模板与插件版本升级不同步:agent 起不来。
  • 缓存未挂载:每次全量拉依赖,构建变慢。
  • 容器内路径与工作目录差异:挂载点权限问题常见。
  • 镜像从不更新:工具链过期与漏洞累积。

数据来源与参考

  • Jenkins 手册《Pipeline Syntax》(agent)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌