From 11189c1d3586d741f480d7026f47b1cc23cd6c09 Mon Sep 17 00:00:00 2001 From: deadprogram Date: Sat, 19 Oct 2024 10:57:52 +0200 Subject: [PATCH] docker: download files first to hopefully not break cache Signed-off-by: deadprogram --- Dockerfile.ffmpeg-static-alpine | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/Dockerfile.ffmpeg-static-alpine b/Dockerfile.ffmpeg-static-alpine index 878a5634..9dc8ca0e 100644 --- a/Dockerfile.ffmpeg-static-alpine +++ b/Dockerfile.ffmpeg-static-alpine @@ -3,7 +3,7 @@ # To build release: # docker buildx build -f Dockerfile.ffmpeg-static-alpine -t ghcr.io/hybridgroup/ffmpeg:5.16-alpine --platform=linux/arm64,linux/amd64 --load . -# Stage 1: Build OpenCV +# linux/amd64 build FROM --platform=linux/amd64 alpine:3.20 AS builder-amd64 WORKDIR / @@ -65,9 +65,28 @@ RUN cd ffmpeg-${FFMPEG_VERSION} && \ --enable-static --disable-shared --enable-gpl --enable-libx264 --enable-libvpx --enable-zlib \ --disable-sdl2 --disable-vaapi --disable-vdpau --disable-v4l2-m2m --disable-doc && \ make -j $(nproc --all) && make install - + + +# linux/arm64 build FROM --platform=linux/arm64 alpine:3.20 AS builder-arm64 +WORKDIR / + +ARG FFMPEG_VERSION=5.1.6 +ARG XZ_VERSION=5.6.3 + +# download xz +RUN wget -O xz-${XZ_VERSION}.tar.bz2 "https://github.com/tukaani-project/xz/releases/download/v${XZ_VERSION}/xz-${XZ_VERSION}.tar.bz2" && \ + tar -xf xz-${XZ_VERSION}.tar.bz2 + +# download bzip2 +RUN wget -O bzip2-master.tar.bz2 "https://gitlab.com/bzip2/bzip2/-/archive/master/bzip2-master.tar.bz2" && \ + tar -xf bzip2-master.tar.bz2 + +# download ffmpeg source +RUN wget -O ffmpeg-5.0.tar.bz2 "https://www.ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2" && \ + tar -xf ffmpeg-5.0.tar.bz2 + # Install dependencies RUN apk update && apk add --no-cache \ build-base \ @@ -87,26 +106,16 @@ RUN apk update && apk add --no-cache \ opus-dev dav1d-dev python3 # Build and install xz -RUN wget -O xz-${XZ_VERSION}.tar.bz2 "https://github.com/tukaani-project/xz/releases/download/v${XZ_VERSION}/xz-${XZ_VERSION}.tar.bz2" && \ - tar -xf xz-${XZ_VERSION}.tar.bz2 - RUN cd xz-${XZ_VERSION} && \ ./configure --disable-shared && \ make && make install # Build and install bzip2 -RUN wget -O bzip2-master.tar.bz2 "https://gitlab.com/bzip2/bzip2/-/archive/master/bzip2-master.tar.bz2" && \ - tar -xf bzip2-master.tar.bz2 - RUN cd bzip2-master && \ mkdir build && cd build && \ cmake .. -DCMAKE_BUILD_TYPE="Release" -DENABLE_STATIC_LIB=ON -DENABLE_LIB_ONLY=ON && \ cmake --build . --target install -# Build and install ffmpeg -RUN wget -O ffmpeg-5.0.tar.bz2 "https://www.ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.bz2" && \ - tar -xf ffmpeg-5.0.tar.bz2 - # Build and install libvpx RUN cd ffmpeg-${FFMPEG_VERSION} && \ git -C libvpx pull 2> /dev/null || git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \