Files
iotlcm/admin-svr/server/build/Dockerfile
T

49 lines
1.3 KiB
Docker

ARG BASE_REGISTRY=docker.io/library
FROM ${BASE_REGISTRY}/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
# 基础镜像源:阿里云 Alpine 镜像站曾出现索引与实际文件不同步(APKINDEX 标 r24、
# 目录只有 r23,导致 musl/musl-dev 拉取 404)。改用清华源,可用性更稳。
RUN sed -i 's#https://dl-cdn.alpinelinux.org/alpine#https://mirrors.tuna.tsinghua.edu.cn/alpine#g' /etc/apk/repositories && \
apk add --no-cache gcc musl-dev git tzdata expect
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 ${BASE_REGISTRY}/alpine:3.23 AS alpine
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/config.example.yaml /app/config/config.yaml
CMD ["./iotlcmadmin_svc"]