FROM 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

RUN apk add --no-cache gcc musl-dev git tzdata

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 alpine:3.23

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/build_config.yaml /app/config/config.yaml

CMD ["./iotlcmadmin_svc"]
