FROM golang:1.26-alpine AS builder WORKDIR /app COPY go.mod go.sum ./ RUN go mod download COPY . . # All dependencies (pgx, the SQLite importer) are pure Go, so build a static binary ENV CGO_ENABLED=0 RUN go build -trimpath -ldflags="-s -w" -o app ./cmd/server FROM alpine:3.22 WORKDIR /app RUN apk add --no-cache ca-certificates tzdata \ && adduser -D appuser \ && mkdir -p /app/uploads /app/tmp /app/data \ && chown -R appuser:appuser /app COPY --from=builder /app/app . USER appuser ENV GIN_MODE=release EXPOSE 3000 CMD ["./app"]