# Stage 1: Базовый образ FROM lukemathwalker/cargo-chef:latest-rust-alpine AS chef WORKDIR /app RUN apk add --no-cache musl-dev # Stage 2: Рецепт FROM chef AS planner COPY . . RUN cargo chef prepare --recipe-path recipe.json # Stage 3: Сборка FROM chef AS builder COPY --from=planner /app/recipe.json recipe.json RUN cargo chef cook --release --recipe-path recipe.json COPY . . RUN cargo build --release # Stage 4: Финальный Alpine (Чистый Rust не требует glibc) FROM alpine:latest WORKDIR /app # Ставим сертификаты (нужны для запросов к PocketBase по https) RUN apk add --no-cache ca-certificates COPY --from=builder /app/target/release/proxy-ws ./proxy-ws # Не забудь про папку с моделью! COPY ./models ./models EXPOSE 3001 CMD ["./proxy-ws"]