用途:将 Go Gin API 打包并部署到生产环境,覆盖多阶段 Docker 构建、docker-compose 本地开发,以及带健康检查的 Kubernetes 清单。
适用时机:首次为 Gin 应用做 Docker 化;用 docker-compose 搭建本地开发(app + postgres + redis);将 Gin API 部署到 Kubernetes;配置健康检查端点与就绪/存活探针;用环境变量管理配置(12-Factor);为 Gin 项目搭建 CI/CD。
主要能力:多阶段 Dockerfile 从 cmd/api/main.go 构建最小生产镜像,运行阶段使用 gcr.io/distroless/static-debian12:nonroot,以非 root 运行,最终镜像约 10 MB;CGO_ENABLED=0 为 distroless/scratch 必需。提供 /health 健康检查端点(含数据库 PingContext),可区分存活与就绪探针。配置通过环境变量读取,如 PORT、DATABASE_URL、JWT_SECRET、GIN_MODE 等,缺失必填项返回错误。附 .dockerignore 排除 .git、.env、*.md 等。docker-compose 示例包含 app、postgres:17-alpine、redis:7-alpine 及健康检查与依赖条件。
参考文件:references/dockerfile.md、docker-compose.md、kubernetes.md(Deployment、Service、ConfigMap、Secret、探针、HPA、Ingress、PVC、PDB、NetworkPolicy、Helm、GitHub Actions 与 Trivy 扫描)、observability.md(OpenTelemetry、otelgin、RED 指标、slog 关联、Jaeger)。
限制:资料未提供具体收费、价格、平台或效果信息;未给出完整安装命令;部分内容依赖 golang-gin-api、golang-gin-database 等关联技能。