GitHub Actions 部署自动化:从 Push 到上线只需一行

为什么选 GitHub Actions?

比起 Jenkins 和 GitLab CI,GitHub Actions 的最大优势是零配置——它直接知道仓库结构,不用像 Docker 部署那样手动搭建编排系统。

.github/workflows/deploy.yml

name: Deploy\n\non:\n  push:\n    branches: [ main ]\n\njobs:\n  build-and-deploy:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      \n      - name: Build Docker Image\n        run: |\n          docker build -t myapp:${{ github.sha }} .\n          docker tag myapp:${{ github.sha }} registry.example.com/myapp:latest\n      \n      - name: Deploy to Server\n        uses: appleboy/ssh-action@master\n        with:\n          host: ${{ secrets.SERVER_HOST }}\n          username: ${{ secrets.SERVER_USER }}\n          key: ${{ secrets.SSH_PRIVATE_KEY }}\n          script: |\n            docker pull registry.example.com/myapp:latest\n            docker stop myapp || true\n            docker rm myapp || true\n            docker run -d --name myapp -p 8080:8080 registry.example.com/myapp:latest

这套流水线与 CI/CD 工具对比中推荐的方案一致——用云原生方案减少运维负担。

关键要点

  1. Secrets 管理:SSH Key、Registry Token 走 GitHub Secrets
  2. 缓存加速:Docker layer cache 能缩短构建时间 60%
  3. 通知机制:部署完成后通过 webhook 推送到钉钉/飞书
上一篇 Ollama 本地知识库搭建:30 分钟搞定私域问答
下一篇 Java 21 Record 深入实战:替代 DTO 的优雅方式
最新评论
Docker 网络模式详解:bridge/host 生产选型 - FSData
Docker 网络模式详解:bridge/host 生产选型 - FSData
8月20日
[…] 注意最后那条:把端口绑定到 127.0.0.1,再由宿主机上的 Nginx 反代进来,比直接 -p 80:80 暴露安全得多,也方便统一做
Vue3 + TypeScript 工程化:类型安全的前端架构 - FSData
Vue3 + TypeScript 工程化:类型安全的前端架构 - FSData
8月20日
[…] Pinia 的工程化用法,可以参考我们之前的实战文章 《Vue3 组合式 API + Pinia:状态管理从入门到实战》,那里覆盖了 Sto
2026 年最值得装的 10 个 VS Code 插件(AI/前端/后端/效率全覆盖) - FSData
2026 年最值得装的 10 个 VS Code 插件(AI/前端/后端/效率全覆盖) - FSData
8月19日
[…] 状态,点一下就能起停容器,配合我们讲过的 Docker Compose 编排 […]
Redis 缓存设计:穿透、击穿、雪崩与最佳实践 - FSData
Redis 缓存设计:穿透、击穿、雪崩与最佳实践 - FSData
8月19日
[…] 缓存三大坑的本质都是”缓存失效导致请求穿透到数据库”。记住口诀:穿透用布隆、击穿用锁、雪崩用错峰。配合合理的过期策略
GitHub Actions 实战:从零搭建 CI/CD 流水线 - FSData
GitHub Actions 实战:从零搭建 CI/CD 流水线 - FSData
8月19日
[…] Docker 镜像部署。结合我们之前写的 Docker Compose 一键编排实战,可以在 CI […]