云端自动化构建:image-template 的 GitHub Actions 如何每天自动发布镜像到 GHCR 云端自动化构建image-template 的 GitHub Actions 如何每天自动发布镜像到 GHCR【免费下载链接】image-templateBuild your own custom Universal Blue Image!项目地址: https://gitcode.com/gh_mirrors/im/image-templateimage-template是 Universal Blue 官方推荐的自定义 bootc 镜像模板。它的核心亮点之一是内置的 GitHub Actions 工作流你只需推送代码云端就会每天自动构建你的自定义 Linux 镜像并完成签名、打标签后自动发布到 GHCRGitHub 容器注册表全程无需一台构建服务器。这篇文章带你拆解这套每天自动发布镜像的完整机制。工作原理一份模板云端流水线image-template 的设计思路是代码即镜像Containerfile 定义基础镜像默认从 Bazzite 派生和构建流程build_files/ 里的build.sh是安装软件包、定制系统的入口image-template.env 用几个变量控制镜像名、默认标签等构建参数.github/workflows/build.yml 就是那台云端构建工厂的完整说明书。你只需要把FROM一行改成想要的基座镜像、在build.sh里写几行安装命令剩下的交给 Actions。触发构建的 4 种方式每天定时发布是核心打开 .github/workflows/build.yml 可以看到工作流有 4 个触发器触发方式行为适合场景pushmain 分支构建并直接发布到 GHCR改完代码即出新镜像schedulecron05 10 * * *每天 UTC 10:05 自动构建发布无感跟进基座镜像的每日更新pull_request只构建、不发布让贡献者先验证改动workflow_dispatch手动点按钮触发临时补一次构建其中每天定时触发是自动化的灵魂基座镜像如 Bazzite每天更新系统包而你的仓库每天都在固定时间跟着重建一次保证你的自定义镜像始终新鲜出炉。自动构建流水线从源码到签名镜像的 7 个关键步骤每次构建在ubuntu-24.04云端 Runner 上执行流程如下环境准备—— 检出代码、清理无用软件腾出磁盘、安装just命令工具并做语法检查just check确保 Justfile 本身没问题确定镜像名与标签—— 从 image-template.env 读取IMAGE_NAME并根据当前日期和 Git 提交号生成一套标签构建容器镜像—— 执行just build用 Podman 按 Containerfile 逐层构建运行build.sh安装定制软件最后执行bootc container lint自检镜像合法性分层重整rechunk—— 用 rpm-ostree 把巨大的 ostree 层重新切成小块让后续 OTA 更新只需下载更小的增量断点续传也更友好多标签打标—— 同一镜像会带上latest、latest-20260827、20260827、latest-SHA、20260827-SHA等标签工作区干净时才生成 SHA 相关标签方便按日期或提交号回溯任意一次构建推送 GHCR—— 登录ghcr.io后循环推送所有标签并记录本次镜像的 digest摘要值Cosign 签名—— 用仓库密钥对镜像摘要签名为最终用户提供可验证的安全保证未配置签名密钥时构建会直接失败宁可不出错也不发裸镜像。安全设计PR 永远不会污染你的镜像库 ️工作流里有一个容易忽略的细节登录 GHCR 和推送镜像的步骤都带有前置判断——只有非 PR 默认分支才会真正发布。这意味着别人的 PR 可以帮你构建验证但无法向你的账户发布任何包合并队列、workflow_dispatch等场景也能正确工作签名密钥SIGNING_SECRET存在 Actions 的 Secrets 中私钥绝不出仓库。再加上 .github/dependabot.yml 每周自动更新 Actions 组件版本整套流水线本身也在持续自愈。进阶按需生成可安装的 ISO / qcow2 磁盘镜像如果你希望把镜像直接刻进 U 盘安装到物理机模板还内置了 .github/workflows/build-disk.yml它不会自动运行而是通过workflow_dispatch手动触发可选择amd64或arm64平台一次生成qcow2虚拟机和anaconda-isoAnaconda 安装盘两种磁盘镜像产物默认作为 Job 工件下载也可勾选upload-to-s3选项通过 rclone 自动上传到你的 S3 兼容存储桶。磁盘构建的配置在 disk_config/disk.toml 与 disk_config/iso.toml 中记得先把里面的容器镜像地址指向你自己的镜像。快速上手3 步拥有自己的每日自动镜像复制模板用 Use this Template 创建新仓库仓库名即镜像名并在 Actions 页签启用工作流生成签名密钥安装 cosign 后执行COSIGN_PASSWORD cosign generate-key-pair把cosign.key的内容存为 Secrets 中的SIGNING_SECRET切记别把私钥提交进仓库定制并推送修改 Containerfile 的FROM行选择基座镜像在 build_files/build.sh 中写你的安装逻辑更新 image-template.env 里的IMAGE_NAME与REPO_ORGANIZATION然后git push。推送后到 Actions 页签看绿色对勾镜像就出现在你的 GHCR 里了。在自己的 bootc 系统上执行sudo bootc switch ghcr.io/用户名/镜像名并重启即可用上这套每天自动更新的自定义系统。 小贴士如果想本地先行验证可git clone https://gitcode.com/gh_mirrors/im/image-template后执行just build效果与云端构建完全一致。【免费下载链接】image-templateBuild your own custom Universal Blue Image!项目地址: https://gitcode.com/gh_mirrors/im/image-template创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

低功耗MCU性能与安全双进阶:从内核架构到选型落地

低功耗MCU性能与安全双进阶:从内核架构到选型落地

这几年我一直在做低功耗嵌入式项目,从可穿戴设备到工业传感器,几乎每个方案都绕不开“Low Power MCUs”。以前提到低功耗MCU,大家总觉得是性能妥协的产物,但这几年情况完全变了:厂商在低功耗这条赛道上把性能堆得越来越…

2026/8/28 15:10:13
STM32F103 ADC 实战:三通道 DMA 循环采集与 Vrefint 校准全流程拆解

STM32F103 ADC 实战:三通道 DMA 循环采集与 Vrefint 校准全流程拆解

三路模拟量同时采,DMA 循环不丢数,Vrefint 实时校准供电波动——这是 STM32F103 外设实战第 5 篇,拆解 ADC 多通道扫描 DMA 乒乓双缓冲 内部基准校准的完整链路。从时钟计算到避坑清单,一篇讲透。为什么绕不开 ADC DMA 做嵌入式…

2026/8/28 15:10:13
UWB高精度定位抗干扰:从信号污染到鲁棒算法实战

UWB高精度定位抗干扰:从信号污染到鲁棒算法实战

1. 问题背景:当UWB定位遭遇“信号污染” 在工业自动化、仓储物流、智慧医疗乃至未来的元宇宙空间里,厘米级甚至毫米级的精确定位技术是许多应用场景的基石。超宽带(UWB)技术,凭借其纳秒级的极窄脉冲和GHz量级的带宽&am…

2026/8/28 15:10:13
从量变到质变:个人成长与职业发展的系统化实践指南

从量变到质变:个人成长与职业发展的系统化实践指南

1. 项目概述:一次关于“量变”与“质变”的年度复盘 又到年底了,朋友圈和社交媒体上开始刷屏各种“年终总结”。有人晒九宫格照片,有人发数据报告,还有人写几千字的长文。说实话,看多了难免觉得有些同质化。但今年&…

2026/8/28 15:10:13
Xavier NX载板选型指南:三家方案对比与实战排错

Xavier NX载板选型指南:三家方案对比与实战排错

上周群里有人问:手里的Xavier NX模组到底该配哪块载板?结果没过几天,三家厂商几乎同步放出了适配Nvidia XavierNX的新Carrier Board。这话题我确实有发言权,从第一代Jetson TX2开始,我前后用过六七块不同品牌的载板&am…

2026/8/28 15:10:13
2026年AI大模型落地指南:收藏这10个高潜力场景,小白也能轻松入门实践!

2026年AI大模型落地指南:收藏这10个高潜力场景,小白也能轻松入门实践!

随着AI行业进入落地深水区,单纯的技术炒作逐渐退潮,商业价值和落地基础的垂直赛道成为主流。本文精选了10个2026年高潜力AI落地场景,涵盖产业端、消费端和公共服务端,详细解析了每个场景的技术底座、商业闭环和规模化渗透空间。从…

2026/8/28 15:05:13