FROM golang:1.26-bookworm AS build
ARG GOPROXY=https://goproxy.cn,direct
ENV GOPROXY=$GOPROXY
WORKDIR /src
COPY go.mod go.sum ./
RUN go mod download
COPY cmd/server ./cmd/server
COPY internal ./internal
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags='-s -w' -o /server ./cmd/server
FROM alpine:latest
RUN addgroup -g 10001 app && adduser -D -u 10001 -G app app
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
USER app
WORKDIR /app
COPY --from=build /server /app/server
EXPOSE 18180
ENTRYPOINT ["/app/server", "-config", "/run/secrets/config.private.json"]
