Zadig v1.18.0 文档
  • 快速入门

    • 什么是 Zadig
    • 核心概念
    • 快速安装
    • 第一个项目
    • 接入准备
  • 安装与配置

    • 安装简介
    • All in One 模式
    • 使用 Sealos 一键安装
    • 基于 Helm 命令安装
    • 基于现有 Kubernetes 安装
    • 本地安装
    • 兼容性列表
  • 最佳实践
  • 项目

    • 项目

      • 项目介绍
      • K8s YAML 项目
      • K8s Helm Chart 项目
      • K8s 托管项目
      • 主机项目
      • 权限管理
    • 工作流

      • 简介
      • 产品工作流
      • 自定义工作流
      • 工作流任务
      • 工作流审批
      • 工作流通知
      • 工作流触发器
    • 环境

      • K8s YAML 环境
      • K8s Helm Chart 环境
      • K8s 托管环境
      • 主机环境
      • 服务详情
    • 服务

      • 简介
      • K8s YAML 测试服务
      • K8s Helm Chart 服务
      • K8s 托管服务
      • 服务组件
      • 服务变量
      • 主机服务
    • 构建
    • 测试
    • 代码扫描
  • 模板库

    • K8s YAML 模板
    • Helm Chart 模板
    • Dockerfile 模板
    • 构建模板
  • 工作流

    • 工作流的触发
    • 工作流的构建缓存
    • 工作流任务的并发运行
    • 工作流的镜像版本回退
    • 工作流的变量传递
  • 环境

    • 环境的负载均衡
    • 配置多套环境
    • 自测联调环境
  • 测试中心

    • 测试中心
    • 测试工具实践
    • Apipost 测试平台接入
    • Apifox 测试平台接入
  • 交付中心

    • 交付物追踪
  • 数据视图

    • 数据概览
    • 效能洞察
  • 仪表盘

    • 仪表盘
  • 集成管理

    • 账号系统

      • LDAP
      • OAuth 2.0
      • GitHub
    • 项目管理
    • 代码源

      • 简介
      • GitLab 集成
      • GitHub 集成
      • Gerrit 集成
      • Gitee 公有云集成
      • 其他代码源集成
    • CI/CD 工具
    • 代码扫描
    • 镜像仓库
    • 对象存储
    • Helm 仓库
    • Kubernetes 集群
    • 主机管理
    • 其他系统
    • 软件包管理
    • 自定义镜像管理
  • 系统设置

    • 系统配置
    • 用户管理
    • 公告管理
    • 操作日志
    • 通知设置
  • 账号设置

    • 偏好设置
  • 开发者中心

    • OpenAPI 开发文档

      • API 调用方式
      • 交付中心
      • 工作流
      • 效能洞察
    • 外部系统接入开发文档

      • 自定义账号系统
      • 自定义工作流任务
    • VS Code Toolkit 插件

      • 使用指南
  • 常见问题

    • 产品使用 FAQ
    • 部署运维 FAQ
    • 集群故障 FAQ
    • 认证鉴权 FAQ
    • 诊断手册
  • 版本发布历史

    • Zadig Roadmap
    • v1.18.0 Release Notes
    • v1.17.0 Release Notes
    • v1.16.0 Release Notes
    • v1.15.0 Release Notes
    • v1.14.0 Release Notes
    • v1.13.0 Release Notes
    • v1.12.0 Release Notes
    • v1.11.0 Release Notes
    • v1.10.0 Release Notes
    • v1.9.0 Release Notes
    • v1.8.0 Release Notes
    • v1.7.1 Release Notes
    • v1.7.0 Release Notes
    • v1.6.0 Release Notes
    • v1.5.0 Release Notes
    • v1.4.0 Release Notes
    • v1.3.1 Release Notes
    • v1.3.0 Release Notes
    • v1.2.0 Release Notes
    • v1.1.0 Release Notes
    • v1.0.0 Release Notes
    • v1.0.0-rc.1 Release Notes
  • 术语表

    • 术语表

本文介绍在 Zadig 系统上如何使用自定义镜像作为构建、测试和代码扫描的基础运行环境。如果构建、测试、代码扫描过程需要安装很多工具和依赖,那么把这些工具和依赖事先打包成一个自定义镜像,在执行构建、测试或者代码扫描时使用它,这样做可以大大提升任务的执行效率。

步骤 1:生成自定义镜像

  • 编写 Dockerfile,根据实际需求,添加 docker 指令。

警告

使用自定义镜像时,需要确保在镜像中安装了 Zadig 系统需要的依赖,否则可能无法正常执行。
所需依赖如下:

  1. curl:获取网络资源
  2. git:用于执行 git 命令,获取构建代码(请确保安装 2.11.0 以上版本)
  3. tzdata:保持容器时间同步

除上述依赖外,构建模块使用的自定义镜像还需安装以下依赖:

  • docker cli:用于执行 docker 命令,必须安装在 /usr/local/bin 目录下。

除上述依赖外,代码扫描模块使用的自定义镜像还需安装以下依赖:

  • Java(Oracle JRE or OpenJDK)
  • sonar-scanner

可参考以下两个 ubuntu:focal 和 centos:7.8.2003 样例,编写你自己的 Dockerfile :

FROM ubuntu:focal

# 在此可添加自定义指令

# 以下是 Zadig 所需要的依赖

# 安装工具 curl git tzdata
RUN sed -i -E "s/[a-zA-Z0-9]+.ubuntu.com/mirrors.aliyun.com/g" /etc/apt/sources.list
RUN apt-get clean && apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y curl git tzdata

# 修改时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 安装 docker client
RUN curl -fsSL "http://resources.koderover.com/docker-cli-v19.03.2.tar.gz" -o docker.tgz &&\
    tar -xvzf docker.tgz &&\
    mv docker/* /usr/local/bin
FROM centos:7.8.2003

# 在此可添加自定义指令

# 以下是 Zadig 所需要的依赖

# 安装工具 curl git tzdata
RUN yum -y install curl git tzdata

# 修改时区
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 安装 docker client
RUN curl -fsSL "http://resources.koderover.com/docker-cli-v19.03.2.tar.gz" -o docker.tgz &&\
    tar -xvzf docker.tgz &&\
    mv docker/* /usr/local/bin
  • 构建镜像,可参考以下命令
docker build -t name:tag -f Dockerfile .
  • 将上一步生成的镜像推送到公开镜像仓库或者已经集成到 Zadig 系统中的私有镜像仓库
docker push name:tag

步骤 2:创建自定义镜像

点击 系统设置 ->自定义镜像管理 -> 添加,如下图所示:

添加自定义镜像

参数说明:

  • 标签:请填写一个可用于辨认镜像的名称
  • 镜像名称:请填写之前上传到镜像仓库的镜像名称,需要填写完整的镜像名称,如 ccr.ccs.tencentyun.com/namespace/imageName:tag

步骤 3:使用自定义镜像

自定义镜像可以在构建、测试和代码扫描模块中使用,下面以构建模块为例。

进入项目下的构建 -> 点击添加,即可在 操作系统 选项中使用自定义镜像,在执行构建任务时,即可使用你的自定义镜像作为操作系统

使用自定义镜像

Prev
软件包管理