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