Files
2026-03-14 19:21:56 +01:00

57 lines
1.1 KiB
Docker

FROM rust:1.94.0-alpine3.23 AS builder
RUN --mount=type=cache,target=/root/.cargo \
rustup component add clippy && \
rustup component add rustfmt --toolchain nightly
RUN \
cargo install cargo-sort && \
cargo install machete
WORKDIR /build
COPY . .
RUN --mount=type=cache,target=/build/target \
cargo sort ./**/Cargo.toml --check && \
cargo machete --with-metadata && \
cargo clippy && \
cargo +nightly fmt --check
RUN --mount=type=cache,target=/build/target \
mkdir release && \
cargo build --workspace --release && \
cp target/release/master release && \
cp target/release/worker release
FROM alpine:3.23 AS master
WORKDIR /app
COPY --from=builder /build/release/master .
WORKDIR /data
CMD ["/app/master"]
FROM alpine:3.23 AS worker
RUN \
apk add --no-cache python3 ffmpeg deno opus
RUN \
wget https://github.com/yt-dlp/yt-dlp/releases/download/2026.03.13/yt-dlp -O /usr/local/bin/yt-dlp && \
chmod +x /usr/local/bin/yt-dlp
WORKDIR /app
COPY --from=builder /build/release/worker .
WORKDIR /data
CMD ["/app/worker"]