FROM rust:1.96-bookworm AS builder

WORKDIR /app

COPY Cargo.toml Cargo.lock build.rs ./
COPY schema ./schema
COPY src ./src

RUN cargo build --release --locked

FROM debian:bookworm-slim AS runtime

RUN apt-get update \
    && apt-get install -y --no-install-recommends gosu \
    && rm -rf /var/lib/apt/lists/* \
    && useradd --system --uid 10001 --home-dir /var/lib/brave-sync brave-sync \
    && mkdir -p /var/lib/brave-sync \
    && chown -R brave-sync:brave-sync /var/lib/brave-sync

COPY --from=builder /app/target/release/brave-sync-rs /usr/local/bin/brave-sync-rs
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh

WORKDIR /var/lib/brave-sync

ENV LISTEN_ADDR=0.0.0.0:8295
ENV SQLITE_PATH=/var/lib/brave-sync/brave-sync.sqlite3

EXPOSE 8295
VOLUME ["/var/lib/brave-sync"]

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["/usr/local/bin/brave-sync-rs"]
