FROM rust:1-bookworm AS builder WORKDIR /build COPY Cargo.toml Cargo.lock ./ COPY agent-api ./agent-api COPY core-api ./core-api 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"]