FROM rust:1.86-alpine AS builder RUN apk add --no-cache musl-dev WORKDIR /app # Workspace COPY Cargo.toml Cargo.lock ./ COPY backend/Cargo.toml ./backend/Cargo.toml COPY agents/agent-scan-network/Cargo.toml ./agents/agent-scan-network/Cargo.toml COPY agents/agent-metric/Cargo.toml ./agents/agent-metric/Cargo.toml # Stubs pour cacher les dépendances RUN mkdir -p backend/src agents/agent-scan-network/src agents/agent-metric/src \ && echo 'fn main(){}' > backend/src/main.rs \ && echo 'fn main(){}' > agents/agent-scan-network/src/main.rs \ && echo 'fn main(){}' > agents/agent-metric/src/main.rs \ && cargo build --release -p sentinelmesh-backend # Sources réelles (les stubs agents restent en place) COPY backend/src ./backend/src COPY backend/migrations ./backend/migrations RUN touch backend/src/main.rs && cargo build --release -p sentinelmesh-backend FROM alpine:3.21 RUN apk add --no-cache ca-certificates && mkdir -p /data WORKDIR /app COPY --from=builder /app/target/release/sentinelmesh-backend . COPY --from=builder /app/backend/migrations ./migrations EXPOSE 8080 CMD ["./sentinelmesh-backend"]