# Dockerfile - QuizZap HF Spaces (FIX GOFLAGS) # ---------------------------------------------------------- # ---- STAGE 1: BUILDER ---- FROM golang:1.22-alpine AS builder # Install build deps RUN apk add --no-cache git ca-certificates # 👇👇👇 LA LIGNE MAGIQUE 👇👇👇 # Doit être AVANT 'go mod download' et 'go build' ENV GOFLAGS="-mod=mod" WORKDIR /app # Copy manifests (go.sum peut être cassé, on s'en fiche grâce à GOFLAGS) COPY go.mod go.sum ./ # Download deps (ignore go.sum) RUN go mod download # Copy source COPY . . # Build static binary (ignore go.sum) RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \ -trimpath \ -ldflags="-s -w" \ -o /quiz-zap . # ---- STAGE 2: FINAL (Alpine) ---- FROM alpine:3.20 # Runtime deps RUN apk add --no-cache ca-certificates tzdata # Non-root user + data dirs RUN adduser -D -u 1000 appuser && \ mkdir -p /data/uploads && \ chown -R appuser:appuser /data USER appuser EXPOSE 7860 ENV PORT=7860 ENV GIN_MODE=release ENV DATA_DIR=/data COPY --from=builder /quiz-zap /quiz-zap ENTRYPOINT ["/quiz-zap"]