# Build stage
FROM golang:1.25-alpine AS builder

RUN apk add --no-cache gcc musl-dev

WORKDIR /app

COPY go.mod go.sum ./
RUN go mod download

COPY . .

RUN CGO_ENABLED=1 GOOS=linux go build -o naviwatcher ./cmd/naviwatcher

# Runtime stage
FROM alpine:3.21

RUN apk add --no-cache ca-certificates sqlite-libs && \
    adduser -D -g '' appuser

WORKDIR /app

COPY --from=builder /app/naviwatcher .

RUN chown appuser:appuser /app

EXPOSE 8080

VOLUME ["/app/data"]

USER appuser

ENTRYPOINT ["./naviwatcher"]
CMD ["-config=/app/data/config.yaml"]
