FROM rust:1.83-bookworm AS build # Install protoc RUN apt-get update && apt-get install -y protobuf-compiler && rm -rf /var/lib/apt/lists/* # build.rs compiles ../../packages/proto/daemon.proto, so the workspace layout # has to be preserved inside the build context. WORKDIR /build COPY packages/proto ./packages/proto COPY apps/daemon ./apps/daemon WORKDIR /build/apps/daemon RUN cargo build --release # --- Production --- FROM debian:bookworm-slim AS production RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ libssl3 \ mariadb-client \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=build /build/apps/daemon/target/release/gamepanel-daemon /app/gamepanel-daemon # Data directories RUN mkdir -p /var/lib/gamepanel/servers /var/lib/gamepanel/backups /etc/gamepanel EXPOSE 50051 HEALTHCHECK --interval=30s --timeout=5s --start-period=15s CMD /app/gamepanel-daemon --health-check || exit 1 CMD ["/app/gamepanel-daemon"]