FROM golang:1-trixie AS builder

WORKDIR /src

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

COPY . .

ARG VERSION=dev
ARG COMMIT=unknown
ARG BUILD_DATE=unknown
RUN CGO_ENABLED=0 go build -trimpath \
    -ldflags="-s -w -X main.version=${VERSION} -X main.commit=${COMMIT} -X main.buildDate=${BUILD_DATE}" \
    -o /out/rsmon-worker ./cmd/rsmon-worker

FROM debian:13-slim

RUN DEBIAN_FRONTEND=noninteractive apt-get update \
    && apt-get install -y --no-install-recommends ca-certificates chromium tzdata \
    && rm -rf /var/lib/apt/lists/* \
    && groupadd --gid 10001 rsmon-worker \
    && useradd --uid 10001 --gid rsmon-worker --home-dir /var/lib/rsmon-worker --create-home --shell /usr/sbin/nologin rsmon-worker

COPY --from=builder /out/rsmon-worker /usr/local/bin/rsmon-worker

ENV HOME=/var/lib/rsmon-worker \
    RSMON_WEBAPP_DATA_DIR=/var/lib/rsmon-worker/webapp

VOLUME ["/var/lib/rsmon-worker"]
EXPOSE 27401 37401
USER rsmon-worker

HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
    CMD ["/usr/local/bin/rsmon-worker", "liveness"]

ENTRYPOINT ["/usr/local/bin/rsmon-worker"]
