FROM rust:1.92 AS builder WORKDIR /app COPY . . RUN cargo build --release -p presentation -p worker -p playout # Presentation image FROM debian:bookworm-slim AS presentation WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends libssl3 ca-certificates curl && rm -rf /var/lib/apt/lists/* COPY --from=builder /app/target/release/k-tv . RUN mkdir -p /app/data EXPOSE 3000 CMD ["./k-tv"] # Worker image FROM debian:bookworm-slim AS worker WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends libssl3 ca-certificates ffmpeg && rm -rf /var/lib/apt/lists/* COPY --from=builder /app/target/release/k-tv-worker . RUN mkdir -p /app/data CMD ["./k-tv-worker"] # Playout image FROM debian:bookworm-slim AS playout WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends libssl3 ca-certificates ffmpeg && rm -rf /var/lib/apt/lists/* COPY --from=builder /app/target/release/k-tv-playout . RUN mkdir -p /app/data /tmp/k-tv-playout EXPOSE 9090 CMD ["./k-tv-playout"]