# Build from the repository root: docker build -f alt/rust/Dockerfile -t ytplayer-rust . FROM rust:1-bookworm AS builder WORKDIR /build COPY alt/rust/Cargo.toml alt/rust/Cargo.lock ./ COPY alt/rust/src ./src RUN --mount=type=cache,target=/usr/local/cargo/registry \ --mount=type=cache,target=/usr/local/cargo/git \ --mount=type=cache,target=/build/target \ cargo build --release && cp target/release/ytplayer-rust-backend /tmp/ytplayer-rust-backend FROM debian:bookworm-slim RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl ffmpeg python3 python3-pip \ && pip3 install --break-system-packages --no-cache-dir yt-dlp \ && rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=builder /tmp/ytplayer-rust-backend /usr/local/bin/ytplayer-rust-backend COPY frontend/ /app/public/ RUN mkdir -p /app/data/media ENV PORT=3000 PUBLIC_DIR=/app/public DB_PATH=/app/data/ytplayer.db MEDIA_DIR=/app/data/media \ MEDIA_CACHE_MAX_BYTES=10737418240 YTDLP_PATH=/usr/local/bin/yt-dlp FFMPEG_PATH=/usr/bin/ffmpeg FFPROBE_PATH=/usr/bin/ffprobe EXPOSE 3000 ENTRYPOINT ["/usr/local/bin/ytplayer-rust-backend"]