|
@@ -0,0 +1,33 @@
|
|
|
|
|
+# IAMServer 多阶段构建
|
|
|
|
|
+# 构建阶段:golang 官方镜像编译 linux 静态二进制
|
|
|
|
|
+FROM golang:1.25 AS builder
|
|
|
|
|
+
|
|
|
|
|
+WORKDIR /app
|
|
|
|
|
+
|
|
|
|
|
+# go模块代理
|
|
|
|
|
+RUN go env -w GOPROXY=https://goproxy.cn,direct
|
|
|
|
|
+
|
|
|
|
|
+# 先拷贝依赖清单,利用 docker 层缓存加速重复构建
|
|
|
|
|
+COPY go.mod go.sum ./
|
|
|
|
|
+RUN go mod download
|
|
|
|
|
+
|
|
|
|
|
+# 拷贝源码并编译(CGO 关闭:全部依赖为纯 Go,静态链接可直接跑在精简基础镜像上)
|
|
|
|
|
+COPY . .
|
|
|
|
|
+RUN CGO_ENABLED=0 GOOS=linux go build -ldflags="-s -w" -o udeserver .
|
|
|
|
|
+
|
|
|
|
|
+# 运行阶段:alpine 精简镜像(带 ca-certificates:OTP/验签服务走 HTTPS 时需要;tzdata:日志时区)
|
|
|
|
|
+FROM alpine:3.20
|
|
|
|
|
+
|
|
|
|
|
+RUN apk add --no-cache ca-certificates tzdata \
|
|
|
|
|
+ && adduser -D -u 1000 app
|
|
|
|
|
+
|
|
|
|
|
+WORKDIR /app
|
|
|
|
|
+COPY --from=builder /app/udeserver .
|
|
|
|
|
+COPY --from=builder /app/etc/udeserver-api.yaml .
|
|
|
|
|
+
|
|
|
|
|
+USER app
|
|
|
|
|
+
|
|
|
|
|
+# 9990 管理端 API;8443 免改造代理
|
|
|
|
|
+EXPOSE 9990 8443
|
|
|
|
|
+
|
|
|
|
|
+CMD ["./udeserver", "-c", "udeserver-api.yaml"]
|