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

如何创建用于构建docker slim的tekton task

用于Docker Slim镜像瘦身的Tekton Task实现方案

前置依赖

  • 集群已部署Tekton Pipelines v0.30+ 版本
  • 已配置具备目标镜像仓库读写权限的ServiceAccount,关联对应docker config类型的Secret
  • 集群容器运行时适配Docker/containerd,对应操作权限已开放

完整Task定义示例

apiVersion: tekton.dev/v1
kind: Task
metadata:
  name: docker-slim-build
spec:
  params:
    - name: SOURCE_IMAGE
      type: string
      description: 待瘦身的原始镜像地址
    - name: TARGET_IMAGE
      type: string
      description: 瘦身完成后输出的镜像地址
    - name: EXTRA_ARGS
      type: string
      default: ""
      description: docker-slim 命令额外传入参数
  workspaces:
    - name: dockerconfig
      description: 存放镜像仓库认证配置的workspace,对应.docker/config.json文件
      mountPath: /root/.docker/
      optional: false
  steps:
    - name: slim-build-and-push
      image: dslim/docker-slim:1.40.11
      securityContext:
        privileged: true
      env:
        - name: DOCKER_CONFIG
          value: /root/.docker/
      script: |
        #!/bin/sh
        slim build \
          --target $(params.SOURCE_IMAGE) \
          --tag $(params.TARGET_IMAGE) \
          --push \
          $(params.EXTRA_ARGS)

关键注意事项

  • 权限配置:如果集群禁止特权容器运行,可将步骤中的privileged: true替换为挂载宿主机/var/run/docker.sock到容器内的/var/run/docker.sock路径,同样可以获取容器运行时操作权限
  • 瘦身兼容性验证:不是所有镜像都支持Docker Slim自动瘦身,对于依赖动态加载外置资源、未显式声明ENTRYPOINT的镜像,建议先在本地执行slim build测试可用性,再配置到流水线中;可通过--include-path参数手动指定需要保留的文件/目录,避免瘦身丢失必要依赖
  • 运行时探针配置:如果待瘦身镜像是Web服务类应用,可传入--http-probe参数,让Docker Slim自动发起接口请求扫描运行时依赖,保留端口暴露、健康检查等配置,避免瘦身完成后镜像无法正常启动
  • 缓存优化:高频执行的流水线可额外新增一个PVC类型的Workspace挂载到/var/lib/docker路径作为镜像层缓存,减少重复拉取镜像的耗时
  • 多架构适配:如果需要构建多架构镜像,需要在EXTRA_ARGS中传入--platform指定对应架构,避免生成的镜像架构和运行环境不匹配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:24:07