FROM golang:1.26-alpine AS build RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \ && apk add --no-cache git WORKDIR /src COPY go.mod go.sum ./ RUN go env -w GOPROXY=https://goproxy.cn,direct && go mod download COPY . . ARG VERSION=1.0.0 ARG BUILD_TIME RUN CGO_ENABLED=0 GOOS=linux go build \ -ldflags "-s -w -X 'main.Version=${VERSION}' -X 'main.BuildTime=${BUILD_TIME}'" \ -o /out/monitor-server ./cmd/server # ── Runtime ── FROM alpine:3.20 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \ && apk add --no-cache ca-certificates tzdata \ && rm -rf /var/cache/apk/* WORKDIR /app COPY --from=build /out/monitor-server . COPY server.yaml . RUN mkdir -p data EXPOSE 8080 VOLUME ["/app/data"] ENTRYPOINT ["./monitor-server"]