# 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"]