32 lines
936 B
Docker
32 lines
936 B
Docker
FROM node:20-alpine as web_builder
|
|
|
|
WORKDIR /usr/src/scel/web
|
|
|
|
COPY src/web/ .
|
|
|
|
RUN --mount=type=cache,target=/usr/src/scel/web/dist yarn
|
|
RUN --mount=type=cache,target=/usr/src/scel/web/dist yarn build
|
|
|
|
FROM rust:1.71 as builder
|
|
|
|
WORKDIR /usr/src/scel
|
|
|
|
COPY . .
|
|
|
|
RUN --mount=type=cache,target=/usr/src/scel/target cargo build --release
|
|
RUN --mount=type=cache,target=/usr/src/scel/target cargo install --path src/cmd/scel
|
|
|
|
FROM debian:bullseye-slim
|
|
|
|
# Install YTD
|
|
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
|
|
RUN --mount=type=cache,target=/var/cache/apt --mount=type=cache,target=/var/lib/apt \
|
|
apt-get update && apt-get install -y python3 python3-pip
|
|
RUN python3 -m pip install -U yt-dlp
|
|
|
|
# Copy binary
|
|
COPY --from=builder /usr/local/cargo/bin/scel /usr/local/bin/scel
|
|
COPY --from=web_builder /usr/src/scel/web/dist /src/web/dist
|
|
|
|
CMD ["scel"]
|