FROM golang:1.27@sha256:2920bb124f1a2e12a1d39f0cab756ae0068441ee1da7655dec7f5e374944095b AS build
WORKDIR /app
ENV CGO_ENABLED=1 GOARM64=v8.5
COPY go.mod go.sum ./
RUN --mount=type=cache,id=gomod-1.27,target=/go/pkg/mod go mod download
COPY . .
RUN --mount=type=cache,id=gomod-1.27,target=/go/pkg/mod --mount=type=cache,id=gobuild-1.27,target=/root/.cache/go-build go build -mod=readonly -trimpath -o /app/server . && go version -m /app/server > /app/build-info.txt
FROM debian:trixie-slim@sha256:f6b08b09a05725f9431502d3b5714f5c4576e82c1a84fa1debe0c24a7e0c3ec4
WORKDIR /app
COPY --from=build /app/server /app/server
COPY --from=build /app/build-info.txt /app/build-info.txt
ENV GOMAXPROCS=3 GOMEMLIMIT=2700MiB
ENTRYPOINT ["/app/server"]
