5分钟上手!Bisheng自动化部署全攻略:GitHub Actions从构建到发布
还在手动部署Bisheng?面对频繁的版本迭代,重复性的打包、推送、部署操作不仅耗时,还容易出错。本文将带你通过GitHub Actions实现Bisheng的全自动部署流程,从代码提交到镜像发布一气呵成,让你专注于功能开发而非运维操作。
部署流程概览
Bisheng作为企业级LLM应用开发平台,其部署流程涉及代码构建、Docker镜像打包、多平台镜像合并及私有仓库同步等环节。GitHub Actions通过.github/workflows/release.yml文件定义自动化流程,在新Release发布时触发完整部署链路。
核心工作流解析
触发机制设计
工作流采用Release事件触发模式,当开发者在GitHub上创建新的Release并标记为"published"时,自动化流程立即启动:
on:
release:
types: [published]
这种设计确保只有正式发布版本才会进入部署流程,符合企业级应用的严谨发布策略。
环境变量配置
关键环境变量集中定义在workflow文件头部,便于统一管理和修改:
env:
DOCKERHUB_REPO: dataelement/
其中DOCKERHUB_REPO指定了Docker镜像的基础路径,所有构建的镜像都将以此为前缀。
多平台镜像处理
Bisheng支持AMD64和ARM64两种架构,通过Docker Manifest实现多平台镜像合并:
docker manifest create ${{ env.DOCKERHUB_REPO }}bisheng-backend:${{ steps.get_version.outputs.VERSION }} \
${{ env.DOCKERHUB_REPO }}bisheng-backend:${{ steps.get_version.outputs.VERSION }}-arm64 \
${{ env.DOCKERHUB_REPO }}bisheng-backend:${{ steps.get_version.outputs.VERSION }}-amd64
这一步骤在.github/workflows/release.yml中实现,确保不同架构的服务器都能获得适配的镜像。
私有仓库同步
为满足企业安全需求,工作流自动将公开镜像同步至私有仓库:
docker tag ${{ env.DOCKERHUB_REPO }}bisheng-backend:${{ steps.get_version.outputs.VERSION }}-amd64 \
cr.dataelem.com/${{ env.DOCKERHUB_REPO }}bisheng-backend:${{ steps.get_version.outputs.VERSION }}
同步逻辑位于[.github/workflows/release.yml#L78-L79],通过Docker Tag和Push命令完成镜像迁移。
部署任务拆分
版本号提取
工作流首先从GitHub Release标签中提取版本号:
- name: Get version
id: get_version
run: |
echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
这段代码将refs/tags/v1.0.0格式的引用转换为v1.0.0版本号,供后续步骤使用。
镜像合并发布
combine_publish_images任务负责处理公开仓库的镜像发布,包含三个关键步骤:
- 版本号解析与环境准备
- Docker Hub登录认证
- 多架构镜像合并与推送
完整实现见[.github/workflows/release.yml#L16-L51]。
私有仓库同步
sync_dataelem_repos任务专注于企业内部仓库同步,流程包括:
- 私有仓库登录认证
- 公开镜像拉取
- 镜像重新标记
- 私有仓库推送
详细代码位于[.github/workflows/release.yml#L53-L89]。
安全与并发控制
并发控制
为防止重复部署冲突,工作流设置了并发控制策略:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
当相同引用(如同一标签)触发新的工作流时,系统会自动取消正在进行中的旧流程。
密钥管理
所有敏感信息如Docker Hub账号密码,均通过GitHub Secrets安全存储:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
这种方式确保认证信息不会泄露到代码仓库中。
部署架构图
Bisheng的GitHub Actions部署流程可概括为以下几个关键环节:
graph LR
A[创建GitHub Release] --> B[触发workflow]
B --> C[解析版本号]
C --> D[登录Docker Hub]
D --> E[合并多架构镜像]
E --> F[推送至公开仓库]
F --> G[登录私有仓库]
G --> H[同步镜像至企业仓库]
通过这种流水线式的自动化流程,Bisheng实现了从代码发布到生产部署的全链路自动化,大幅提升了企业级LLM应用的交付效率。
自定义部署扩展
如需根据企业实际需求调整部署流程,可重点关注以下扩展点:
- 添加测试环节:在镜像构建前插入自动化测试步骤
- 扩展支持架构:通过修改manifest创建命令增加新的硬件架构支持
- 集成部署通知:添加企业IM工具通知,实时同步部署状态
- 实现蓝绿部署:结合Kubernetes API实现零停机部署
所有自定义配置均需通过修改.github/workflows/release.yml文件实现,并遵循YAML语法规范。
总结
通过GitHub Actions,Bisheng构建了一套完整的自动化部署体系,实现了从Release创建到多仓库镜像同步的全流程自动化。这种方式不仅减少了人工操作失误,还大幅缩短了企业级LLM应用的发布周期,为AI应用的快速迭代提供了坚实保障。
如需进一步优化部署流程,可参考项目中的docker-compose.yml配置文件,结合企业实际基础设施进行定制化调整。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00