# ---- 构建阶段 ---- FROM golang:1.26-alpine AS builder WORKDIR /app # 使用国内 Go 代理 ENV GOPROXY=https://goproxy.cn,https://goproxy.io,direct # 先复制依赖清单,利用 Docker 缓存层 COPY go.mod go.sum ./ RUN go mod download # 复制源码并构建 COPY . . RUN CGO_ENABLED=0 GOOS=linux go build -o /camtalk ./cmd/server # ---- 运行阶段 ---- FROM alpine:3.20 RUN apk add --no-cache ca-certificates tzdata WORKDIR /app # 复制二进制和配置文件(敏感配置通过 docker-compose env_file 注入覆盖) COPY --from=builder /camtalk . COPY config.yaml . EXPOSE 8080 ENTRYPOINT ["./camtalk"]