多服务共享构建

本文主要介绍如何实现多个服务共享一份构建配置,大大降低构建脚本的管理和维护负担。

配置构建

multi-service-demo多服务共享构建 - 图1 (opens new window) 为例,该项目包括 3 个 Golang 服务 service1/service2/service3,和构建相关的目录结构说明如下:

  1. ├── Dockerfile # 定义 3 个服务的 Dockerfile
  2. ├── Makefile # 定义 3 个服务的编译
  3. ├── src # 3 个服务的源代码
  4. ├── service1
  5. ├── service2
  6. └── service3

步骤 1:创建构建

创建 Zadig 构建,服务选择中选择多个服务,按需配置构建环境、代码信息、通用构建脚本等,利用系统提供变量实现构建的共享,本示例中的构建脚本如下:

  1. cd zadig/examples/multi-service-demo
  2. make build-$SERVICE
  3. docker build -t $IMAGE -f Dockerfile --build-arg service=$SERVICE .
  4. docker push $IMAGE

共享构建

步骤 2:关联服务

  • 创建构建配置时指定多个服务,或者创建构建完毕后修改构建,在服务选择中选择多个服务。

使用共享构建

  • 也可以在为服务配置构建时,按需选择复用已有的构建配置实现构建共享。

创建服务时复用已有构建

配置工作流

以自定义工作流为例,编辑「构建」任务,选择服务和对应的构建,即可实现多个服务共享同一构建。

配置工作流