ARG BASE_REGISTRY=docker.io/library FROM ${BASE_REGISTRY}/golang:1.25-alpine AS builder LABEL maintainer="iotlcm-openapi" ARG GOPROXY=https://goproxy.cn,direct ENV GOPROXY=${GOPROXY} \ GOSUMDB=off WORKDIR /app ENV GO111MODULE=on \ CGO_ENABLED=0 \ GOOS=linux \ GOARCH=amd64 COPY go.mod go.sum ./ RUN go mod download || (go clean -modcache && go mod download) ARG BuildVersion ARG BuildTime ARG CommitID COPY . . RUN go build -trimpath -ldflags="-s -w -X main.BuildVersion=${BuildVersion} -X main.BuildTime=${BuildTime} -X main.CommitID=${CommitID}" -o /app/bin/iotlcm-openapi . FROM ${BASE_REGISTRY}/alpine:3.23 AS alpine LABEL maintainer="iotlcm-openapi" ARG ALPINE_MIRROR=mirrors.aliyun.com RUN sed -i "s|dl-cdn.alpinelinux.org|${ALPINE_MIRROR}|g" /etc/apk/repositories && \ apk add --no-cache ca-certificates tzdata && \ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \ echo "Asia/Shanghai" > /etc/timezone ENV TZ=Asia/Shanghai \ WORKDIR=/app WORKDIR $WORKDIR COPY --from=builder /app/bin/iotlcm-openapi $WORKDIR/main COPY --from=builder /app/resource $WORKDIR/resource COPY --from=builder /app/manifest/i18n $WORKDIR/manifest/i18n COPY --from=builder /app/build/config.example.yaml $WORKDIR/config/config.yaml RUN mkdir -p $WORKDIR/config RUN chmod +x $WORKDIR/main EXPOSE 8000 CMD ["./main"]