bria 0.1.0

Multi-pipeline job orchestrator
Documentation
ARG RUST_VERSION=1.96

FROM rust:${RUST_VERSION}-slim-bookworm AS builder

WORKDIR /usr/src/bria
RUN apt-get update \
    && apt-get install -y --no-install-recommends ca-certificates pkg-config clang cmake make \
    && rm -rf /var/lib/apt/lists/*

COPY Cargo.toml Cargo.lock ./
COPY src ./src
RUN cargo build --release --bin bria

FROM debian:bookworm-slim AS runtime

RUN apt-get update \
    && apt-get install -y --no-install-recommends ca-certificates sqlite3 \
    && rm -rf /var/lib/apt/lists/* \
    && useradd --system --create-home --home-dir /var/lib/bria --shell /usr/sbin/nologin bria \
    && mkdir -p /etc/bria /var/log/bria /tmp/bria \
    && chown -R bria:bria /var/lib/bria /var/log/bria /tmp/bria

COPY --from=builder /usr/src/bria/target/release/bria /usr/local/bin/bria

STOPSIGNAL SIGTERM
ENV BRIA_CONFIG=/etc/bria/Config.toml

LABEL org.opencontainers.image.title="Bria" \
      org.opencontainers.image.description="Rust-based multi-pipeline job orchestrator" \
      org.opencontainers.image.licenses="MIT" \
      org.opencontainers.image.source="https://github.com/melonask/bria"

HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
    CMD ["/usr/local/bin/bria", "ping"]

USER bria
WORKDIR /var/lib/bria
EXPOSE 4000

ENTRYPOINT ["/usr/local/bin/bria"]
CMD ["--config", "/etc/bria/Config.toml"]