FROM rust:1-bookworm AS builder

WORKDIR /build
COPY Cargo.toml Cargo.lock ./
COPY default-core ./default-core
COPY src ./src
COPY web ./web
RUN cargo build --release --bin wolloseum

FROM debian:bookworm-slim AS runtime

RUN apt-get update \
    && apt-get install -y --no-install-recommends util-linux \
    && rm -rf /var/lib/apt/lists/* \
    && install -d --owner=10001 --group=10001 /var/lib/wolloseum

COPY --from=builder --chown=10001:10001 /build/target/release/wolloseum /usr/local/bin/wolloseum
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh

RUN chmod 755 /usr/local/bin/docker-entrypoint.sh

ENV WOLLOSEUM_DATA_DIR=/var/lib/wolloseum \
    WOLLOSEUM_BIND=0.0.0.0:8080

VOLUME ["/var/lib/wolloseum"]
EXPOSE 8080
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
CMD ["/usr/local/bin/wolloseum", "serve"]