From 14d85e83e61e67d11a3f9ce7b5c68e92624e25f2 Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 30 Apr 2022 19:33:11 +0700 Subject: [PATCH] move ffmpeg install to final container, #234 --- Dockerfile | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8f545a18..2651f86d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,21 +7,7 @@ FROM python:3.10.4-slim-bullseye AS builder ARG TARGETPLATFORM RUN apt-get update -RUN apt-get install -y --no-install-recommends build-essential gcc curl - -# get newest patched ffmpeg and ffprobe builds for amd64 fall back to repo ffmpeg for arm64 -RUN if [ "$TARGETPLATFORM" = "linux/amd64" ] ; then \ - curl -s https://api.github.com/repos/yt-dlp/FFmpeg-Builds/releases/latest \ - | grep browser_download_url \ - | grep ".*master.*linux64.*tar.xz" \ - | cut -d '"' -f 4 \ - | xargs curl -L --output ffmpeg.tar.xz && \ - tar -xf ffmpeg.tar.xz --strip-components=2 --no-anchored -C /usr/bin/ "ffmpeg" && \ - tar -xf ffmpeg.tar.xz --strip-components=2 --no-anchored -C /usr/bin/ "ffprobe" && \ - rm ffmpeg.tar.xz \ - ; elif [ "$TARGETPLATFORM" = "linux/arm64" ] ; then \ - apt-get -y update && apt-get -y install --no-install-recommends ffmpeg && rm -rf /var/lib/apt/lists/* \ - ; fi +RUN apt-get install -y --no-install-recommends build-essential gcc # install requirements COPY ./tubearchivist/requirements.txt /requirements.txt @@ -37,15 +23,28 @@ ENV PYTHONUNBUFFERED 1 # copy build requirements COPY --from=builder /root/.local /root/.local -COPY --from=builder /usr/bin/ffmpeg /usr/bin/ffmpeg -COPY --from=builder /usr/bin/ffprobe /usr/bin/ffprobe ENV PATH=/root/.local/bin:$PATH # install distro packages needed RUN apt-get clean && apt-get -y update && apt-get -y install --no-install-recommends \ nginx \ atomicparsley \ - curl && rm -rf /var/lib/apt/lists/* + curl \ + xz-utils && rm -rf /var/lib/apt/lists/* + +# get newest patched ffmpeg and ffprobe builds for amd64 fall back to repo ffmpeg for arm64 +RUN if [ "$TARGETPLATFORM" = "linux/amd64" ] ; then \ + curl -s https://api.github.com/repos/yt-dlp/FFmpeg-Builds/releases/latest \ + | grep browser_download_url \ + | grep ".*master.*linux64.*tar.xz" \ + | cut -d '"' -f 4 \ + | xargs curl -L --output ffmpeg.tar.xz && \ + tar -xf ffmpeg.tar.xz --strip-components=2 --no-anchored -C /usr/bin/ "ffmpeg" && \ + tar -xf ffmpeg.tar.xz --strip-components=2 --no-anchored -C /usr/bin/ "ffprobe" && \ + rm ffmpeg.tar.xz \ + ; elif [ "$TARGETPLATFORM" = "linux/arm64" ] ; then \ + apt-get -y update && apt-get -y install --no-install-recommends ffmpeg && rm -rf /var/lib/apt/lists/* \ + ; fi # install debug tools for testing environment RUN if [ "$INSTALL_DEBUG" ] ; then \