From 8c390ec4312f9ca8048d00f06654c4f10b2c2f3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20=C3=96ner?= <ahmetn8@gmail.com> Date: Sun, 16 Feb 2025 22:27:59 +0100 Subject: [PATCH] Simplify FFmpeg installation using pre-built image --- Dockerfile | 45 ++------------------------------------------- Dockerfile.gpu | 43 ++----------------------------------------- 2 files changed, 4 insertions(+), 84 deletions(-) diff --git a/Dockerfile b/Dockerfile index 08cfa3a..034c4d5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,44 +1,4 @@ -FROM debian:bookworm-slim AS ffmpeg - -RUN export DEBIAN_FRONTEND=noninteractive \ - && apt-get -qq update \ - && apt-get -qq install --no-install-recommends \ - build-essential \ - git \ - pkg-config \ - yasm \ - ca-certificates \ - gcc \ - python3-dev \ - && rm -rf /var/lib/apt/lists/* - -RUN git clone https://github.com/FFmpeg/FFmpeg.git --depth 1 --branch n6.1.1 --single-branch /FFmpeg-6.1.1 - -WORKDIR /FFmpeg-6.1.1 - -RUN PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ - --prefix="$HOME/ffmpeg_build" \ - --pkg-config-flags="--static" \ - --extra-cflags="-I$HOME/ffmpeg_build/include" \ - --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ - --extra-libs="-lpthread -lm" \ - --ld="g++" \ - --bindir="$HOME/bin" \ - --disable-doc \ - --disable-htmlpages \ - --disable-podpages \ - --disable-txtpages \ - --disable-network \ - --disable-autodetect \ - --disable-hwaccels \ - --disable-ffprobe \ - --disable-ffplay \ - --enable-filter=copy \ - --enable-protocol=file \ - --enable-small && \ - PATH="$HOME/bin:$PATH" make -j$(nproc) && \ - make install && \ - hash -r +FROM onerahmet/ffmpeg:n7.1 AS ffmpeg FROM swaggerapi/swagger-ui:v5.9.1 AS swagger-ui @@ -61,8 +21,7 @@ ENV PATH="${PATH}:${POETRY_VENV}/bin" WORKDIR /app COPY . /app -COPY --from=ffmpeg /FFmpeg-6.1.1 /FFmpeg-6.1.1 -COPY --from=ffmpeg /root/bin/ffmpeg /usr/local/bin/ffmpeg +COPY --from=ffmpeg /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg COPY --from=swagger-ui /usr/share/nginx/html/swagger-ui.css swagger-ui-assets/swagger-ui.css COPY --from=swagger-ui /usr/share/nginx/html/swagger-ui-bundle.js swagger-ui-assets/swagger-ui-bundle.js diff --git a/Dockerfile.gpu b/Dockerfile.gpu index 709681f..1bb5bd1 100644 --- a/Dockerfile.gpu +++ b/Dockerfile.gpu @@ -1,42 +1,4 @@ -FROM debian:bookworm-slim AS ffmpeg - -RUN export DEBIAN_FRONTEND=noninteractive \ - && apt-get -qq update \ - && apt-get -qq install --no-install-recommends \ - build-essential \ - git \ - pkg-config \ - yasm \ - ca-certificates \ - && rm -rf /var/lib/apt/lists/* - -RUN git clone https://github.com/FFmpeg/FFmpeg.git --depth 1 --branch n6.1.1 --single-branch /FFmpeg-6.1.1 - -WORKDIR /FFmpeg-6.1.1 - -RUN PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \ - --prefix="$HOME/ffmpeg_build" \ - --pkg-config-flags="--static" \ - --extra-cflags="-I$HOME/ffmpeg_build/include" \ - --extra-ldflags="-L$HOME/ffmpeg_build/lib" \ - --extra-libs="-lpthread -lm" \ - --ld="g++" \ - --bindir="$HOME/bin" \ - --disable-doc \ - --disable-htmlpages \ - --disable-podpages \ - --disable-txtpages \ - --disable-network \ - --disable-autodetect \ - --disable-hwaccels \ - --disable-ffprobe \ - --disable-ffplay \ - --enable-filter=copy \ - --enable-protocol=file \ - --enable-small && \ - PATH="$HOME/bin:$PATH" make -j$(nproc) && \ - make install && \ - hash -r +FROM onerahmet/ffmpeg:n7.1 AS ffmpeg FROM swaggerapi/swagger-ui:v5.9.1 AS swagger-ui @@ -78,8 +40,7 @@ RUN poetry config virtualenvs.in-project true RUN poetry install --no-root COPY . . -COPY --from=ffmpeg /FFmpeg-6.1.1 /FFmpeg-6.1.1 -COPY --from=ffmpeg /root/bin/ffmpeg /usr/local/bin/ffmpeg +COPY --from=ffmpeg /usr/local/bin/ffmpeg /usr/local/bin/ffmpeg COPY --from=swagger-ui /usr/share/nginx/html/swagger-ui.css swagger-ui-assets/swagger-ui.css COPY --from=swagger-ui /usr/share/nginx/html/swagger-ui-bundle.js swagger-ui-assets/swagger-ui-bundle.js -- GitLab