73 lines
2.4 KiB
Ruby
73 lines
2.4 KiB
Ruby
ARG GOLANG_VERSION=1.25.1
|
|
ARG FFMPEG_VERSION=7.1.1
|
|
ARG VIPS_VERSION=8.17.2
|
|
|
|
FROM golang:${GOLANG_VERSION}-trixie AS cache-builder
|
|
|
|
ARG FFMPEG_VERSION
|
|
ARG VIPS_VERSION
|
|
ARG TARGETARCH
|
|
|
|
ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
|
|
ENV MAKEFLAGS="-j8"
|
|
|
|
# Install libvips + FFmpeg + required libraries
|
|
RUN DEBIAN_FRONTEND=noninteractive \
|
|
apt-get update && \
|
|
apt-get install --no-install-recommends -y \
|
|
ca-certificates \
|
|
automake build-essential curl \
|
|
meson ninja-build pkg-config \
|
|
gobject-introspection gtk-doc-tools libglib2.0-dev libjpeg62-turbo-dev libpng-dev \
|
|
libwebp-dev libtiff-dev libexif-dev libxml2-dev libpoppler-glib-dev \
|
|
swig libpango1.0-dev libmatio-dev libopenslide-dev libcfitsio-dev libopenjp2-7-dev liblcms2-dev \
|
|
libgsf-1-dev libfftw3-dev liborc-0.4-dev librsvg2-dev libimagequant-dev libaom-dev \
|
|
libspng-dev libcgif-dev libheif-dev libheif-plugin-x265 libheif-plugin-aomenc libjxl-dev libavif-dev \
|
|
libmagickwand-dev \
|
|
yasm libx264-dev libx265-dev libnuma-dev libvpx-dev libtheora-dev \
|
|
librtmp-dev libvorbis-dev libdav1d-dev && \
|
|
cd /tmp && \
|
|
curl -fsSLO https://github.com/libvips/libvips/releases/download/v${VIPS_VERSION}/vips-${VIPS_VERSION}.tar.xz && \
|
|
tar xf vips-${VIPS_VERSION}.tar.xz && \
|
|
cd vips-${VIPS_VERSION} && \
|
|
meson setup _build \
|
|
--buildtype=release \
|
|
--strip \
|
|
--prefix=/usr/local \
|
|
--libdir=lib \
|
|
-Dmagick=enabled \
|
|
-Djpeg-xl=enabled \
|
|
-Dintrospection=disabled && \
|
|
ninja -C _build && \
|
|
ninja -C _build install && \
|
|
cd /tmp && \
|
|
curl -fsSLO https://ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz && \
|
|
tar xf ffmpeg-${FFMPEG_VERSION}.tar.xz && \
|
|
cd /tmp/ffmpeg-${FFMPEG_VERSION} && \
|
|
./configure --prefix=/usr/local \
|
|
--disable-debug \
|
|
--disable-doc \
|
|
--disable-ffplay \
|
|
--disable-static \
|
|
--enable-shared \
|
|
--enable-version3 \
|
|
--enable-gpl \
|
|
--enable-libtheora \
|
|
--enable-libvorbis \
|
|
--enable-librtmp \
|
|
--enable-libwebp \
|
|
--enable-libvpx \
|
|
--enable-libx265 \
|
|
--enable-libx264 \
|
|
--enable-libdav1d \
|
|
--enable-libaom && \
|
|
make && make install && \
|
|
ldconfig && \
|
|
rm -rf /usr/local/lib/python* && \
|
|
rm -rf /usr/local/lib/libvips-cpp.* && \
|
|
rm -rf /usr/local/lib/*.a && \
|
|
rm -rf /usr/local/lib/*.la && \
|
|
rm -rf /tmp/*
|
|
|
|
# This cache image provides Go + compiled libvips + FFmpeg libraries
|
|
LABEL maintainer="imagorvideo"
|