Files
ytplayer/alt/rust/Dockerfile
2026-10-14 01:17:30 +08:00

23 lines
1.1 KiB
Docker

# 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"]