FROM rust:slim-bookworm AS builder RUN apt-get update && apt-get install -y pkg-config libssl-dev clang libelf-dev libbpf-dev linux-libc-dev make && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY Cargo.toml Cargo.lock rustfmt.toml clippy.toml deny.toml build.rs ./ COPY src/ ./src/ COPY xdp/ ./xdp/ # Smoke-check: BPF-программа компилируется clang'ом (не грузится, только сборка) RUN if command -v clang >/dev/null; then \ mkdir -p /app/target/xdp && \ clang -O2 -g -target bpf -c xdp/core/universal_filter.c -o /app/target/xdp/universal_filter.o; \ fi RUN cargo build --release --features xdp --bin rampart && \ cp target/release/rampart /app/rampart && \ strip /app/rampart FROM debian:bookworm-slim RUN apt-get update && apt-get install -y ca-certificates libelf1 && rm -rf /var/lib/apt/lists/* COPY --from=builder /app/rampart /usr/local/bin/rampart EXPOSE 25565 9090 ENTRYPOINT ["rampart"]