You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Kubernetes(JCASC):如何将默认容器从JNLP改为自定义容器?

把自定义容器设为Jenkins流水线默认容器的方法

既然你用的是Jenkins Helm Chart做Jenkins as Code,完全不用每次都写container('my container') {},有几种靠谱的方法能把自定义容器设为全局默认:

1. 直接修改Helm Chart配置(最符合Jenkins as Code理念)

直接在Helm的values.yaml里调整默认代理容器的设置,重新部署后所有流水线都会自动用你的自定义容器:

  • 找到agent相关配置块,添加或修改如下内容:
    agent:
      # 指定默认使用的容器名称
      containerName: "my container"
      # 同时要确保Pod模板里定义了这个自定义容器
      podTemplates:
        - name: default
          containers:
            - name: "my container"
              image: "你的自定义容器镜像地址"
              # 按需加其他配置,比如保持容器运行的命令、资源限制等
              command: "cat"
              ttyEnabled: true
    
  • 执行Helm升级命令生效:helm upgrade jenkins jenkins/jenkins -f your-values.yaml

2. 用全局共享库统一封装

如果不想动Helm配置,或者需要更灵活的逻辑,可以搞个Jenkins共享库:

  • 在共享库的vars目录下建个defaultContainer.groovy,代码如下:
    def call(Closure body) {
      container('my container') {
        body()
      }
    }
    
  • 把这个共享库加到Jenkins全局配置里,开启自动导入(Auto-Imports)。
  • 之后流水线里直接写defaultContainer {}就行,甚至可以在共享库里加逻辑,比如根据分支或环境切换容器。

3. 修改全局Pod模板(UI配置方式)

如果暂时不想改Helm配置,也可以在Jenkins UI里改:

  • 进Manage Jenkins > Configure System > Cloud > Kubernetes > Pod Templates,找到默认的Pod模板。
  • 把原来的jnlp容器替换成你的自定义容器,或者调整容器顺序让自定义容器成为默认执行容器。
  • 不过这种方式不符合Jenkins as Code的原则,后续如果重新部署Helm Chart,配置可能会被覆盖,所以只适合临时场景。

总结一下:完全不需要每次手动加容器代码块,优先用方法1,保持配置集中管理,符合你用Jenkins as Code的初衷。

内容的提问来源于stack exchange,提问作者EilonA

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 15:17:15