# 第一阶段:构建 FROM golang:1.24.0 AS builder ENV GOPROXY=https://goproxy.cn,direct WORKDIR /build # 复制Go模块文件 COPY go.mod go.sum ./ RUN go mod download # 复制源代码 COPY . . # 编译 RUN GOOS=linux GOARCH=amd64 go build -ldflags '-w -s' -o bin/platform_linux_amd64 cmd/main/main.go # 第二阶段:运行环境 FROM ubuntu:24.04 AS runner WORKDIR /app RUN apt-get update && apt-get install -y ca-certificates # 从构建阶段复制编译好的二进制文件 COPY --from=builder /build/bin/platform_linux_amd64 /app/platform # 设置可执行权限 RUN chmod +x /app/platform # 创建存放密钥文件的目录 RUN mkdir -p /app/certs # 声明暴露端口(实际端口通过环境变量传入) ENV APP_PORT=8080 EXPOSE ${APP_PORT} # 声明卷,用于在运行时挂载私密的证书文件 VOLUME ["/app/certs"] # 启动平台服务 CMD ["/app/platform"]