FROM 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

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

LABEL maintainer="iotlcm-openapi"

RUN 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

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/build_config.yaml $WORKDIR/config/config.yaml
RUN mkdir -p $WORKDIR/config

RUN chmod +x $WORKDIR/main

EXPOSE 8000

CMD ["./main"]
