Docker 构建与推送到 Docker Hub
本文说明如何从源码构建 OmniBox 镜像,以及如何通过 GitHub Actions 将镜像推送到 Docker Hub(及可选的 GitHub Container Registry)。
发布流程概述
- 在仓库中打版本 tag(如
1.2.0) - 推送 tag 到远程,触发 GitHub Actions
- CI 构建完整版与 Lite 版镜像,推送到 Docker Hub(及可选 GHCR)
- 可选:CI 自动创建 GitHub Release
所需 Secrets
在仓库 Settings → Secrets and variables → Actions 中配置:
| Secret | 说明 |
|---|---|
DOCKER_USERNAME | Docker Hub 用户名 |
DOCKER_PASSWORD | Docker Hub 密码或 Access Token |
推送 GitHub Container Registry 使用 GITHUB_TOKEN,无需额外配置(若仓库允许写入 packages)。
打 tag 触发发布
bash
# 打版本 tag
git tag 1.2.0
# 推送到远程,触发 CD 工作流
git push origin 1.2.0推送后,Actions 会构建并推送以下镜像:
- 完整版:
<DOCKER_USERNAME>/omnibox:<version>、<DOCKER_USERNAME>/omnibox:latest - Lite 版:
<DOCKER_USERNAME>/omnibox:<version>-lite、<DOCKER_USERNAME>/omnibox:lite
平台:linux/amd64、linux/arm64。
本地多架构构建与推送
若需在本地构建并直接推送到 Docker Hub:
bash
# 登录 Docker Hub
docker login
# 多架构构建并推送(完整版)
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t <你的用户名>/omnibox:latest \
-f Dockerfile \
--push .
# 多架构构建并推送(Lite 版)
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t <你的用户名>/omnibox:lite \
-f Dockerfile.lite \
--push .单架构本地构建:
bash
# 完整版
docker build -t omnibox:latest -f Dockerfile .
docker run -d --name omnibox -p 7023:7023 -v omnibox-data:/app/data omnibox:latest
# Lite 版
docker build -f Dockerfile.lite -t omnibox:lite .相关文件
- 工作流定义:
.github/workflows/cd.yml - 完整版镜像:
Dockerfile - 精简版镜像:
Dockerfile.lite
