dockerfile fix

This commit is contained in:
2026-04-24 03:47:04 +07:00
parent 8120bf724a
commit bdc9fd8853
+11 -10
View File
@@ -1,22 +1,23 @@
# Stage 1: Рецепт (планирование) # Используем официальный образ как базу
FROM lucasalt/cargo-chef:latest-rust-1.80-alpine AS planner FROM rust:1.80-alpine AS chef
# Устанавливаем cargo-chef вручную
RUN apk add --no-cache musl-dev
RUN cargo install cargo-chef
WORKDIR /app WORKDIR /app
FROM chef AS planner
COPY . . COPY . .
RUN cargo chef prepare --recipe-path recipe.json RUN cargo chef prepare --recipe-path recipe.json
# Stage 2: Сборка зависимостей (самый долгий этап, кэшируется) FROM chef AS builder
FROM lucasalt/cargo-chef:latest-rust-1.80-alpine AS builder
WORKDIR /app
RUN apk add --no-cache musl-dev
COPY --from=planner /app/recipe.json recipe.json COPY --from=planner /app/recipe.json recipe.json
# Здесь собираются только зависимости # Сборка зависимостей
RUN cargo chef cook --release --recipe-path recipe.json RUN cargo chef cook --release --recipe-path recipe.json
# Сборка самого приложения
# Stage 3: Сборка самого приложения (быстро)
COPY . . COPY . .
RUN cargo build --release RUN cargo build --release
# Stage 4: Рантайм (миниатюрный образ) # Финальный рантайм
FROM alpine:latest FROM alpine:latest
WORKDIR /app WORKDIR /app
COPY --from=builder /app/target/release/proxy-ws ./proxy-ws COPY --from=builder /app/target/release/proxy-ws ./proxy-ws