FROM alpine:3.19 AS builder RUN apk add --no-cache cargo RUN mkdir /src COPY . /src WORKDIR /src RUN cargo build --release --no-default-features # ############################################## FROM alpine:3.19 ARG ffmpeg_ver=7.0 RUN apk add --no-cache \ dav1d fontconfig freetype harfbuzz librsvg libva lilv-libs opus svt-av1 x264-libs x265 \ font-noto inkscape libarchive-tools libgcc \ # we install ffmpeg ourselves to get libsvtav1 support which is not part of the alpine package \ && apk add --no-cache --virtual .build-deps \ build-base \ dav1d-dev fontconfig-dev freetype-dev harfbuzz-dev librsvg-dev libva-dev lilv-dev opus-dev svt-av1-dev x264-dev x265-dev \ && wget -q https://ffmpeg.org/releases/ffmpeg-${ffmpeg_ver}.tar.bz2 \ && tar xfa ffmpeg-${ffmpeg_ver}.tar.bz2 \ && cd ffmpeg-${ffmpeg_ver} \ && ./configure \ --prefix=/usr/local \ --disable-asm \ --disable-librtmp \ --disable-lzma \ --disable-static \ --enable-avfilter \ --enable-gpl \ --enable-libdav1d \ --enable-libfontconfig \ --enable-libfreetype \ --enable-libharfbuzz \ --enable-libopus \ --enable-librsvg \ --enable-libsvtav1 \ --enable-libx264 \ --enable-libx265 \ --enable-lto=auto \ --enable-lv2 \ --enable-pic \ --enable-postproc \ --enable-pthreads \ --enable-shared \ --enable-vaapi \ --enable-version3 \ --optflags="-O3" \ && make -j$(nproc) install \ && apk del --no-cache .build-deps \ && cd .. \ && rm -r ffmpeg-${ffmpeg_ver} ffmpeg-${ffmpeg_ver}.tar.bz2 \ # we need Arial Black for the VideoAG logo \ && wget -q https://www.freedesktop.org/software/fontconfig/webfonts/webfonts.tar.gz \ && tar xfa webfonts.tar.gz \ && cd msfonts \ && for file in *.exe; do bsdtar xf "$file"; done \ && install -Dm644 -t /usr/share/fonts/msfonts/ *.ttf *.TTF \ && install -Dm644 -t /usr/share/licenses/msfonts/ Licen.TXT \ && cd .. \ && rm -r msfonts webfonts.tar.gz COPY --from=builder /src/target/release/render_video /usr/local/bin/render_video ENTRYPOINT ["/usr/local/bin/render_video"]