3.1 KiB
3.1 KiB
Speakr CI/CD 设置
本文档解释了 Speakr 项目的持续集成和持续部署(CI/CD)流水线是如何设置的。
自动 Docker 镜像构建与发布
Speakr 项目使用 GitHub Actions 在代码推送到仓库时自动构建 Docker 镜像并发布到 Docker Hub。
工作原理
- 当代码推送到
master分支或创建新标签(格式为v*.*.*)时,GitHub Actions 工作流将被触发。 - 工作流使用项目的 Dockerfile 构建 Docker 镜像。
- 如果触发原因是推送到
master分支,镜像将被标记为:latest- 提交的短 SHA 值
- 分支名称(
master)
- 如果触发原因是新标签(例如
v1.2.3),镜像将被标记为:- 完整版本号(
1.2.3) - 主.次版本号(
1.2) - 标签名称(
v1.2.3)
- 完整版本号(
- 然后镜像会被推送到你账户下的 Docker Hub。
设置步骤
要设置自动 Docker 镜像发布,请按照以下步骤操作:
-
创建 Docker Hub 账户(如果你还没有的话):
- 访问 Docker Hub 并注册账户。
- 创建一个名为
speakr的仓库。
-
创建 Docker Hub 访问令牌:
- 登录 Docker Hub。
- 点击右上角的用户名,选择"Account Settings"进入账户设置。
- 导航到"Security"选项卡。
- 点击"New Access Token"。
- 给令牌取个名字(例如"GitHub Actions")并设置适当的权限(至少需要"Read & Write")。
- 复制生成的令牌(你将无法再次看到它)。
-
将 Docker Hub 凭据添加到 GitHub Secrets:
- 进入你的 GitHub 仓库。
- 点击"Settings" > "Secrets and variables" > "Actions"。
- 点击"New repository secret"。
- 添加以下密钥:
- 名称:
DOCKERHUB_USERNAME,值:你的 Docker Hub 用户名 - 名称:
DOCKERHUB_TOKEN,值:你在上一步生成的访问令牌
- 名称:
-
验证工作流:
- 工作流文件位于
.github/workflows/docker-publish.yml。 - 它已经配置好可以构建并推送 Docker 镜像到 Docker Hub。
- 如果需要,你可以进一步自定义它。
- 工作流文件位于
-
触发工作流:
- 推送更改到
master分支或创建新标签来触发工作流。 - 进入 GitHub 仓库的"Actions"选项卡来监控工作流进度。
- 推送更改到
使用已发布的 Docker 镜像
镜像发布到 Docker Hub 后,你可以在 docker-compose.yml 文件中使用它们:
version: '3.8'
services:
app:
image: learnedmachine/speakr:latest
container_name: speakr
restart: unless-stopped
ports:
- "8899:8899"
volumes:
- ./uploads:/data/uploads
- ./instance:/data/instance
env_file:
- .env
版本控制策略
要创建新版本的应用程序:
- 进行更改并提交到仓库。
- 按照语义化版本控制创建新标签:
git tag v1.0.0 # 替换为适当的版本号 git push origin v1.0.0 - GitHub Actions 工作流将自动构建并发布带有相应版本标签的新 Docker 镜像。
这样用户可以选择使用最新版本(learnedmachine/speakr:latest)或特定版本(learnedmachine/speakr:1.0.0)。