# syntax=docker/dockerfile:1

FROM golang:1.26-alpine AS build

RUN apk add --no-cache ca-certificates git
WORKDIR /src
ENV GOPRIVATE=codeup.aliyun.com/qimao/*

COPY go.mod ./
RUN --mount=type=secret,id=CODEUP_NETRC,target=/root/.netrc,required=true \
    go mod download

COPY server.go ./
RUN CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o /out/server ./server.go

FROM alpine:3.23

RUN addgroup -S app && adduser -S -G app app
WORKDIR /app
COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
COPY --from=build --chown=app:app /out/server /app/server

USER app
EXPOSE 3000
CMD ["/app/server"]
