Files
blog_data/aegea_youtube_checler/Dockerfile
T
2026-11-13 23:37:32 +07:00

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