49 lines
1.3 KiB
Docker
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"]
|