Buddy让开发人员可以使用来自Git存储仓代码轻松构建和测试Docker镜像。设置以Docker为中心的流水线与在服务中设置任何其他类型的交付一样简单。
首先,您需要指定镜像应该基于哪个存储仓。 Buddy与GitHub、Bitbucket和GitLab进行了原生集成,但您也可以连接任何其他私有存储仓或Buddy自带的Git存储仓:
成功同步存储仓后,您可以添加流水线。可以通过三种方式触发流水线:事件(自动)、手动(点击触发)和定时(按时间间隔):
第二件事是设置将运行构建的分支、标签或 PR:
下一步是添加将对您的应用程序进行docker化的操作。从操作列表中Docker区域选择“构建镜像”:
在操作相关信息中,指定Dockerfile位置和将在其关联工件中构建镜像的目录(可选):
构建私有镜像
如果镜像为私有(例如:来自:my-registry.com/buddy/my-image:latest
)并且需要登录注册中心,您可以在“选项”选项卡中配置访问数据。Buddy与Docker Hub、Google GCR和Amazon ECR完美集成。 除此之外,您可以使用任何其它私有注册中心。
构建多构建Docker镜像
从操作列表中Docker区域选择“构建镜像”:
在操作"设置"之下选定“平台目标:
Docker镜像持续交付
使用Buddy,您基本上可以自动化任何类型的DevOps流程。例如:您可以创建一个流水线,该流水线将在每次推送到选定分支时执行以下任务 —— 只需将新操作添加到现有的操作即可:
- 运行单元测试
- 检查Dockerfile是否正常
- 构建Docker镜像
- 运行镜像并测试是否正常
- 推送镜像至所选注册中心
- 发送通知至Slack频道
信息
默认情况下,Buddy缓存Docker层和应用程序依赖项以加快构建过程。
构建参数
默认情况下,Buddy不会将环境变量传递给构建。如果要传递则必须定义构建参数并提供要作为值传递的环境变量。
信息
除此之外,您可以在操作中定义自己的构建参数:
目标构建阶段
如果您的Dockerfile包含镜像多构建阶段,您可以在“选项”选项卡中指定应该构建哪个阶段:
缓存
所有Docker层在构建后都会自动缓存。这意味着后续构建只创建自上次构建以来发生变化的层,这大大减少了构建时间。每次构建后,Buddy都会运行 docker prune
删除所有悬空镜像(与任何标签镜像无关并占用磁盘空间的层)。
如果您运行多阶段构建,您可能需要禁用"prune"选项,因为它也会删除中间阶段的层。您可以在“选项”栏中选取“Don't prune images”执行此操作: