type
status
date
slug
summary
category
tags
create_time
Jul 17, 2025 12:59 PM
icon
password
my_create_time

📝 前言

这是 DevOps 专题的第九篇,回顾一下前几篇的内容:
这一篇我们继续介绍如何使用 Gitea Actions 来完成多架构平台的镜像构建。

🧭 背景介绍

Gitea 作为一款轻量级、可自托管的 Git 服务,已经支持 Actions 工作流。
在多架构(Multi-Arch)部署逐渐成为常态的今天,合理使用 Gitea Actions 自动构建多架构镜像,能大大提升部署效率与可维护性。
Docker 多架构镜像(Multi-Architecture Images)通过一个统一的镜像标签(如 myapp:latest)支持多种硬件架构(如 amd64arm64ppc64le 等),简化了跨平台应用的部署和管理。

🔍 使用场景

在如下场景中,构建多架构容器镜像具有重要意义:
  • 跨平台开发与测试:许多开发者在使用 苹果Mac 作为本地开发环境,镜像默认为 ARM 架构,而线上大部分服务器仍使用 x86 架构。
  • 边缘计算与 IoT 设备:在异构硬件(如树莓派 arm32/arm64、工业设备 ppc64le)上部署同一应用。
  • 异构 Kubernetes 集群:集群混合包含 amd64(常规节点)和 arm64(成本优化节点)机器。
通过本文方法,你可以使用 Gitea Actions 无缝集成 Docker Buildx 并完成多平台镜像构建与推送。

📋 前提条件

在开始前,请确认以下环境准备已完成:

🚀 详细步骤

1️⃣ 编写工作流文件

创建.gitea/workflows/build.yaml文件,内容参考如下:
配置说明:
  • 这里为了提高构建效率,我将官方Actions都缓存到自建的gitea仓库,并且镜像也通过Harbor进行代理缓存加速。
  • 我们新增了1个action:docker/setup-buildx-action ,它是由官方 Docker 团队提供的 GitHub Actions 插件,用于在 CI 环境中配置并启用 Docker Buildx 构建器,是构建多架构镜像的关键组件。由于我们的内网镜像仓库是只支持http协议的,因此我们还添加了http仓库的配置。
  • 构建多平台镜像:我们在构建镜像时,platforms添加了linux/arm64,用于同时构建ARM架构的镜像。
PS:当未设置buildx action时,是无法同时构建ARM架构镜像的。

2️⃣ 推送代码触发构建

只需将代码推送至 main 分支,Gitea Actions 会自动触发工作流并构建多架构镜像。
可以在 Gitea 的”Actions”界面查看执行进度与日志。
notion image

3️⃣ 验证推送结果

当工作流执行完成后,我们可以进入Harbor镜像仓库,查看多架构镜像。
notion image
注意:只有当该镜像具有多架构时,才会出现类似这个文件夹的标志。
点击文件夹进去就可以看到有2个不同架构的镜像,之后在docker客户端拉取镜像时会自动选择跟当前系统匹配的架构。
notion image
PS:另外阿里云个人版镜像仓库是不支持多架构镜像上传的。

✅ 总结

最后总结一下,本文介绍了如何通过 Gitea Actions 构建并推送支持多架构的 Docker 镜像。
相比传统方法,这种方式更适合私有化、自托管的 CI/CD 需求,尤其在内网部署和异构集群中优势明显。
💡
有关文章的任何疑问,欢迎您在底部评论区留言,一起交流~
若文章对您有帮助,欢迎 请我喝杯咖啡~
 
上一篇
网站"日常瞬间"功能设计说明
下一篇
Harbor 镜像代理仓库配置指南

评论
Loading...