为什么选 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 工具对比中推荐的方案一致——用云原生方案减少运维负担。
关键要点
- Secrets 管理:SSH Key、Registry Token 走 GitHub Secrets
- 缓存加速:Docker layer cache 能缩短构建时间 60%
- 通知机制:部署完成后通过 webhook 推送到钉钉/飞书




