23 lines
1.1 KiB
Docker
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"]
|