From 8aa89c095809f9da3c02cb2ca162f6d426cafaa0 Mon Sep 17 00:00:00 2001 From: Markos Gogoulos Date: Mon, 7 Jul 2025 13:00:33 +0300 Subject: [PATCH] feat: use apt for installing ffmpeg --- Dockerfile | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/Dockerfile b/Dockerfile index a0f4eb45..05cf652e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,17 +2,18 @@ FROM python:3.13.5-bookworm AS build-image # Install system dependencies needed for downloading and extracting RUN apt-get update -y && \ - apt-get install -y --no-install-recommends wget xz-utils unzip && \ + apt-get install -y --no-install-recommends wget xz-utils unzip ffmpeg && \ rm -rf /var/lib/apt/lists/* && \ apt-get purge --auto-remove && \ apt-get clean -# Install ffmpeg -RUN wget -q https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz && \ - mkdir -p ffmpeg-tmp && \ - tar -xf ffmpeg-release-amd64-static.tar.xz --strip-components 1 -C ffmpeg-tmp && \ - cp -v ffmpeg-tmp/ffmpeg ffmpeg-tmp/ffprobe ffmpeg-tmp/qt-faststart /usr/local/bin && \ - rm -rf ffmpeg-tmp ffmpeg-release-amd64-static.tar.xz +# Install ffmpeg - using apt package instead of static binary for faster builds +# Original static binary download hangs in github actions: +# RUN wget -q https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz && \ +# mkdir -p ffmpeg-tmp && \ +# tar -xf ffmpeg-release-amd64-static.tar.xz --strip-components 1 -C ffmpeg-tmp && \ +# cp -v ffmpeg-tmp/ffmpeg ffmpeg-tmp/ffprobe ffmpeg-tmp/qt-faststart /usr/local/bin && \ +# rm -rf ffmpeg-tmp ffmpeg-release-amd64-static.tar.xz # Install Bento4 in the specified location RUN mkdir -p /home/mediacms.io/bento4 && \ @@ -34,18 +35,19 @@ ENV CELERY_APP='cms' ENV VIRTUAL_ENV=/home/mediacms.io ENV PATH="$VIRTUAL_ENV/bin:$PATH" -# Install runtime system dependencies +# Install runtime system dependencies (including ffmpeg) RUN apt-get update -y && \ apt-get -y upgrade && \ - apt-get install --no-install-recommends supervisor nginx imagemagick procps pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl -y && \ + apt-get install --no-install-recommends supervisor nginx imagemagick procps pkg-config libxml2-dev libxmlsec1-dev libxmlsec1-openssl ffmpeg -y && \ rm -rf /var/lib/apt/lists/* && \ apt-get purge --auto-remove && \ apt-get clean -# Copy ffmpeg and Bento4 from build image -COPY --from=build-image /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg -COPY --from=build-image /usr/local/bin/ffprobe /usr/local/bin/ffprobe -COPY --from=build-image /usr/local/bin/qt-faststart /usr/local/bin/qt-faststart +# Copy Bento4 from build image (ffmpeg now available system-wide via apt) +# Original binary copying (no longer needed): +# COPY --from=build-image /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg +# COPY --from=build-image /usr/local/bin/ffprobe /usr/local/bin/ffprobe +# COPY --from=build-image /usr/local/bin/qt-faststart /usr/local/bin/qt-faststart COPY --from=build-image /home/mediacms.io/bento4 /home/mediacms.io/bento4 # Set up virtualenv @@ -69,7 +71,6 @@ COPY . /home/mediacms.io/mediacms WORKDIR /home/mediacms.io/mediacms # required for sprite thumbnail generation for large video files - COPY deploy/docker/policy.xml /etc/ImageMagick-6/policy.xml # Set process control environment variables @@ -85,4 +86,4 @@ EXPOSE 9000 80 RUN chmod +x ./deploy/docker/entrypoint.sh ENTRYPOINT ["./deploy/docker/entrypoint.sh"] -CMD ["./deploy/docker/start.sh"] +CMD ["./deploy/docker/start.sh"] \ No newline at end of file