ARG BASE_REGISTRY=docker.io/library FROM ${BASE_REGISTRY}/golang:1.25-alpine AS builder LABEL stage=gobuilder ENV GOPROXY=https://goproxy.cn,direct ENV TZ=Asia/Shanghai ENV CGO_ENABLED=1 ENV GOOS=linux ENV GOARCH=amd64 # 基础镜像源:阿里云 Alpine 镜像站曾出现索引与实际文件不同步(APKINDEX 标 r24、 # 目录只有 r23,导致 musl/musl-dev 拉取 404)。改用清华源,可用性更稳。 RUN sed -i 's#https://dl-cdn.alpinelinux.org/alpine#https://mirrors.tuna.tsinghua.edu.cn/alpine#g' /etc/apk/repositories && \ apk add --no-cache gcc musl-dev git tzdata expect WORKDIR /build COPY go.mod go.sum ./ RUN go mod download COPY . . ARG BuildVersion=unknown ARG CommitID=unknown ARG BuildTime=unknown RUN set -euxo pipefail && \ pwd && ls -la && \ go build -v \ -o /build/iotlcmadmin_svc \ -ldflags "-X main.BuildVersion=${BuildVersion} -X main.CommitID=${CommitID} -X main.BuildTime=${BuildTime}" \ . FROM ${BASE_REGISTRY}/alpine:3.23 AS alpine RUN apk add --no-cache ca-certificates tzdata ENV TZ=Asia/Shanghai EXPOSE 13100 WORKDIR /app COPY --from=builder /build/iotlcmadmin_svc /app/iotlcmadmin_svc COPY --from=builder /build/build/config.example.yaml /app/config/config.yaml CMD ["./iotlcmadmin_svc"]