# syntax=docker/dockerfile:1

# ---- Étape de build ----
FROM golang:1.23-alpine AS build

WORKDIR /src

# Téléchargement des dépendances en couche séparée pour profiter du cache.
COPY go.mod go.sum ./
RUN go mod download

# Copie du code source et compilation d'un binaire statique.
COPY . .
RUN CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags="-s -w" -o /out/server ./cmd/server

# ---- Image finale (distroless, légère) ----
FROM gcr.io/distroless/static-debian12:nonroot

# Copie du binaire statique.
COPY --from=build /out/server /server

# Le dossier de stockage est monté via un volume (cf. docker-compose).
ENV STORAGE_PATH=/data/documents
ENV PORT=8080

EXPOSE 8080

USER nonroot:nonroot
ENTRYPOINT ["/server"]
