27c62fa54c
- Contexte de build depuis la racine du workspace Cargo - Rust 1.86 pour edition 2024 - Layer cache avec stubs membres du workspace - Création répertoire /data dans l'image - SQLite create_if_missing(true) pour créer la DB au premier démarrage Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
27 lines
1.1 KiB
Docker
27 lines
1.1 KiB
Docker
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"]
|