Docker部署Go应用最佳实践

发布时间:2026-07-20 阅读量:643 Docker Go 容器化 部署 DevOps
Docker部署Go应用最佳实践

Docker部署Go应用

Docker容器化部署是现代应用交付的标准方式,本文介绍Go应用的Docker部署最佳实践。

一、多阶段构建

多阶段构建可以显著减小镜像体积。Go编译后的二进制不需要Go运行环境。

# 构建阶段
FROM golang:1.21-alpine AS builder
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN CGO_ENABLED=0 go build -o app .

# 运行阶段
FROM alpine:latest
COPY --from=builder /app/app .
CMD ["./app"]

二、镜像优化技巧

  • 使用alpine基础镜像(约5MB)
  • 设置CGO_ENABLED=0生成静态二进制
  • 使用.dockerignore排除不必要文件
  • 合理利用构建缓存

三、docker-compose编排

使用docker-compose可以方便地管理多个容器的编排。

version: '3'
services:
  app:
    build: .
    ports:
      - "8080:8080"
    volumes:
      - ./data:/app/data
    restart: always

四、总结

通过多阶段构建和镜像优化,Go应用的Docker镜像可以控制在20MB以内。配合docker-compose,可以轻松实现一键部署。

← 返回文章列表

相关文章