Files

49 lines
1.3 KiB
Docker

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"]