Dockerfile 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. # udeServer 多阶段构建
  2. # 构建阶段:golang 官方镜像编译 linux 静态二进制
  3. FROM golang:1.25 AS builder
  4. WORKDIR /app
  5. # go模块代理
  6. RUN go env -w GOPROXY=https://goproxy.cn,direct
  7. # 先拷贝依赖清单,利用 docker 层缓存加速重复构建
  8. COPY go.mod go.sum ./
  9. RUN go mod download
  10. # 拷贝源码并编译(CGO 关闭:全部依赖为纯 Go,静态链接可直接跑在精简基础镜像上)
  11. COPY . .
  12. RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o udeserver .
  13. # 运行阶段:alpine 精简镜像(带 ca-certificates:OTP/验签服务走 HTTPS 时需要;tzdata:日志时区)
  14. FROM alpine:3.20
  15. RUN apk add --no-cache ca-certificates tzdata \
  16. && adduser -D -u 1000 app
  17. WORKDIR /app
  18. COPY --from=builder /app/udeserver ./udeserver
  19. # 关键:配置必须放进 ./etc/ 目录,与启动参数 -f etc/udeserver-api.yaml 对应
  20. COPY --from=builder /app/etc/udeserver-api.yaml ./etc/udeserver-api.yaml
  21. USER app
  22. # 9993 UDE 管理 API
  23. EXPOSE 9993
  24. CMD ["./udeserver", "-f", "etc/udeserver-api.yaml"]