# ── Build stage: compile ntfy-bridge from source ──────────────────────────
FROM alpine:3.20 AS builder

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

# Build V from source
RUN git clone --depth 1 https://github.com/vlang/v /opt/v
WORKDIR /opt/v
RUN make

# Copy project source and build
WORKDIR /src
COPY . .
RUN /opt/v/v -prod -o /ntfy-bridge .

# ── Runtime stage: minimal image ───────────────────────────────────────────
FROM alpine:3.20

RUN apk add --no-cache ca-certificates tzdata
COPY --from=builder /ntfy-bridge /usr/local/bin/ntfy-bridge

WORKDIR /etc/ntfy-bridge
EXPOSE 9090

HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
	CMD wget --no-verbose --tries=1 --spider http://localhost:9090/health || exit 1

ENTRYPOINT ["/usr/local/bin/ntfy-bridge"]
CMD ["--quiet", "--config", "/etc/ntfy-bridge/ntfy-bridge.yaml"]
