在CentOS上实现Golang项目的持续集成(CI)与部署(CD),可参考以下核心流程及工具方案:
安装基础工具
GOPATH
和GOROOT
环境变量。项目结构优化
go.mod
和go.sum
文件包含所有依赖项。git clone
拉取代码。go mod tidy
或go get
确保依赖最新。go build
生成可执行文件,支持交叉编译(如GOOS=linux
)。go test ./...
运行测试,结合-cover
生成覆盖率报告。golint
或staticcheck
进行代码风格扫描。FROM golang:1.18 as builder
WORKDIR /app
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -o app .
FROM alpine:latest
COPY --from=builder /app/app .
CMD ["./app"]
scp
将二进制文件传输到服务器,赋予执行权限后后台运行。scp app user@server:/path/to/deploy
ssh user@server "chmod +x /path/to/deploy/app && nohup /path/to/deploy/app &"
docker run
或docker-compose
启动容器,支持负载均衡和滚动更新。场景 | 推荐工具 | 核心优势 |
---|---|---|
轻量级CI/CD | Drone | 轻量级、支持自托管,配置简单 |
企业级集成 | Jenkins + Docker | 插件丰富,支持复杂流水线和权限管理 |
云原生部署 | GitLab CI/CD + Kubernetes | 原生支持容器化,集成服务发现和扩缩容 |