完整搞懂 Nextcloud AIO 镜像发布流水线:跟一个标签走完 develop 到 latest 三级跳

📅 发布时间:2026/9/16 19:21:57
完整搞懂 Nextcloud AIO 镜像发布流水线:跟一个标签走完 develop 到 latest 三级跳
完整搞懂 Nextcloud AIO 镜像发布流水线跟一个标签走完 develop 到 latest 三级跳【免费下载链接】all-in-one The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.项目地址: https://gitcode.com/GitHub_Trending/al/all-in-oneNextcloud All-in-OneAIO是 Nextcloud 官方提供的容器化部署方式只跑一个主容器由它调度数据库、Web 服务器、办公协作、病毒扫描等十几个服务容器的完整生命周期。AIO 镜像的发布拆成 develop、beta、latest 三个标签分别对应开发版、体验版、正式版每次晋级都要先过构建检查和测试关卡。读完这篇你能看懂 AIO 镜像从代码到生产的完整流转也能在自己的部署里切换通道、本地构建镜像。第 0 天develop 镜像是怎么来的先提交代码再触发构建镜像构建不发生在主仓库里。repo-sync.yml工作流先把代码从主仓库同步过来再逐个容器构建产物自动发布到develop和develop-arm64两个标签对应 amd64 和 arm64 两种架构真正的构建动作由build_images.yml承担。所以任何测试或晋级之前第一件事是确认build_images.yml最近一次运行是否成功——这是每次发布的门槛。主容器是整套系统的心脏mastercontainer 是你唯一需要手动安装的容器其余的都由它调度。它的 Dockerfile 是多阶段构建把 Docker CLI 和 Caddy 反向代理装进 php-fpmPHP 运行环境镜像里。同目录的 README 列了它的四份职责托管 AIO 管理界面8080 端口自签 HTTPS、8443 端口自动签发 Lets Encrypt 证书、编排其他容器的创建与更新、协调备份、监控健康状态。第 1 天谁来把关质量 自动化 E2E 加手工 QA 场景Playwright 的 E2E 工作流playwright.yml模拟真实用户操作的整条链路测试跑接口测试用例文件放在 php/tests/tests/覆盖初始安装、配置持久化、实例恢复等场景维护者还备有一台专用测试 VM 做发布前的最后验证。tests/QA/ 目录里是带编号的手工验证剧本001 初始安装、010 恢复实例、020 备份与还原、030 修改 AIO 密码、055 社区容器照着执行即可。第 2 天三级跳晋级到 latest两个工作流完成两次晋级 晋级动作本身只有两步点击但前面有检查项查 GitHub 状态页确认服务健康确认build_images.yml没有正在运行的作业进入promote-to-beta.yml点 Run workflow完成 develop 到 beta 的晋级。beta 晋级 latest 同理确认状态页正常后检查promote-to-beta.yml没有运行中的作业再运行promote-to-latest.yml。完整说明都写在 develop.md 里。用户侧的等价动作切换通道你用哪个通道由 compose.yaml 里的镜像标签决定生产环境跑latest想帮测新版本用beta开发者用develop。切换通道不是改配置项官方做法是停掉并删除 mastercontainer再用新标签的docker run命令重建完整命令见 develop.md 的 develop 通道章节。部署之后你拿到什么怎么运维一个 compose 文件三个端口根目录的 compose.yaml 给主容器开了三个端口80 是 Nextcloud 入口8080 是 AIO 管理界面自签证书8443 是可信 HTTPS 入口。配置卷名nextcloud_aio_mastercontainer:/mnt/docker-aio-config是写死的改名会导致内置的 BorgBackup增量去重备份工具失效。主容器跑起来后会自动生成全套子容器编排参考 manual-install/latest.yml每个子容器都是只读根文件系统、带健康检查、并丢弃 NET_RAW 权限。升级与回滚的讲法 主容器定期拉取新镜像并触发备份相关定时任务类都在 php/src/Cron/ 下比如PullContainerImages和CreateBackup你在界面确认更新后才会执行。latest 标签更新后已部署实例不需要重装新镜像被拉取后界面点一下按钮即完成升级。要进数据库看数据跑sudo docker exec -it nextcloud-aio-database psql -U oc_nextcloud nextcloud_database就行。出问题要回滚就从备份还原操作参照 tests/QA/020-backup-and-restore.md 里的步骤演练一遍。本地验证两条命令自己构建镜像每个容器一条命令在项目根目录执行 buildx 即可# 构建主容器 docker buildx build --file Containers/mastercontainer/Dockerfile --tag ghcr.io/nextcloud-releases/all-in-one:develop --load . # 构建其他容器以 nextcloud 容器为例 docker buildx build --file Containers/nextcloud/Dockerfile --tag ghcr.io/nextcloud-releases/aio-nextcloud:develop --load .本地镜像的哈希和线上最新发布对不上界面会提示强制更新在 URL 后加?bypass_mastercontainer_update或?bypass_container_update即可跳过该校验继续验证你的改动。另外两条部署路径社区容器community-containers/ 下每个容器都有 JSON 定义和 readmeJellyfin、Vaultwarden 等主容器读取定义后帮你部署Kubernetes用 nextcloud-aio-helm-chart/ 这张 Chart参数集中在 values.yaml 管理。你的下一步先用 compose.yaml 拉latest标签跑起最小实例再照着 develop.md 切换一次 beta 通道最后按 QA 剧本做一次完整的备份还原演练。三件事做完生产环境你心里就有底了。【免费下载链接】all-in-one The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.项目地址: https://gitcode.com/GitHub_Trending/al/all-in-one创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考