57 lines
1.9 KiB
Docker
57 lines
1.9 KiB
Docker
FROM python:3.11-slim-bookworm
|
|
|
|
ARG YTDLP_URL=https://github.com/yt-dlp/yt-dlp/releases/download/2026.10.26/yt-dlp
|
|
ARG YTDLP_SHA256=e51e69e89489f199530f13d32a4342da3ddb2cf34842f364603a066db05afbf3
|
|
ARG DENO_VERSION=2.9.8
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive \
|
|
PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
PATH="/usr/local/bin:${PATH}" \
|
|
YTDL=yt-dlp \
|
|
OUT_DIR=/output
|
|
|
|
RUN apt-get update \
|
|
&& apt-get install -y --no-install-recommends \
|
|
ca-certificates \
|
|
curl \
|
|
ffmpeg \
|
|
unzip \
|
|
default-mysql-client \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN set -eux; \
|
|
arch="$(dpkg --print-architecture)"; \
|
|
case "$arch" in \
|
|
amd64) deno_target="x86_64-unknown-linux-gnu" ;; \
|
|
arm64) deno_target="aarch64-unknown-linux-gnu" ;; \
|
|
*) echo "unsupported arch: $arch" >&2; exit 1 ;; \
|
|
esac; \
|
|
curl -fsSL "https://github.com/denoland/deno/releases/download/v${DENO_VERSION}/deno-${deno_target}.zip" \
|
|
-o "/tmp/deno-${deno_target}.zip"; \
|
|
curl -fsSL "https://github.com/denoland/deno/releases/download/v${DENO_VERSION}/deno-${deno_target}.zip.sha256sum" \
|
|
-o "/tmp/deno-${deno_target}.zip.sha256sum"; \
|
|
(cd /tmp && sha256sum -c "deno-${deno_target}.zip.sha256sum"); \
|
|
unzip -q "/tmp/deno-${deno_target}.zip" -d /usr/local/bin; \
|
|
chmod +x /usr/local/bin/deno; \
|
|
rm -f /tmp/deno-*; \
|
|
deno --version
|
|
|
|
RUN curl -fsSL "${YTDLP_URL}" -o /usr/local/bin/yt-dlp \
|
|
&& echo "${YTDLP_SHA256} /usr/local/bin/yt-dlp" | sha256sum -c - \
|
|
&& chmod +x /usr/local/bin/yt-dlp \
|
|
&& yt-dlp --version
|
|
|
|
COPY egea-youtube-check.sh /usr/local/bin/egea-youtube-check
|
|
RUN chmod +x /usr/local/bin/egea-youtube-check
|
|
|
|
RUN useradd --create-home --uid 1000 --shell /bin/bash app \
|
|
&& mkdir -p /downloads /output \
|
|
&& chown -R app:app /downloads /output
|
|
|
|
USER app
|
|
WORKDIR /downloads
|
|
|
|
ENTRYPOINT ["yt-dlp"]
|
|
CMD ["--help"]
|