|
|
|
@ -7,21 +7,7 @@ FROM python:3.10.4-slim-bullseye AS builder
|
|
|
|
|
ARG TARGETPLATFORM |
|
|
|
|
|
|
|
|
|
RUN apt-get update |
|
|
|
|
RUN apt-get install -y --no-install-recommends build-essential gcc curl |
|
|
|
|
|
|
|
|
|
# get newest patched ffmpeg and ffprobe builds for amd64 fall back to repo ffmpeg for arm64 |
|
|
|
|
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ] ; then \ |
|
|
|
|
curl -s https://api.github.com/repos/yt-dlp/FFmpeg-Builds/releases/latest \ |
|
|
|
|
| grep browser_download_url \ |
|
|
|
|
| grep ".*master.*linux64.*tar.xz" \ |
|
|
|
|
| cut -d '"' -f 4 \ |
|
|
|
|
| xargs curl -L --output ffmpeg.tar.xz && \ |
|
|
|
|
tar -xf ffmpeg.tar.xz --strip-components=2 --no-anchored -C /usr/bin/ "ffmpeg" && \ |
|
|
|
|
tar -xf ffmpeg.tar.xz --strip-components=2 --no-anchored -C /usr/bin/ "ffprobe" && \ |
|
|
|
|
rm ffmpeg.tar.xz \ |
|
|
|
|
; elif [ "$TARGETPLATFORM" = "linux/arm64" ] ; then \ |
|
|
|
|
apt-get -y update && apt-get -y install --no-install-recommends ffmpeg && rm -rf /var/lib/apt/lists/* \ |
|
|
|
|
; fi |
|
|
|
|
RUN apt-get install -y --no-install-recommends build-essential gcc |
|
|
|
|
|
|
|
|
|
# install requirements |
|
|
|
|
COPY ./tubearchivist/requirements.txt /requirements.txt |
|
|
|
@ -37,15 +23,28 @@ ENV PYTHONUNBUFFERED 1
|
|
|
|
|
|
|
|
|
|
# copy build requirements |
|
|
|
|
COPY --from=builder /root/.local /root/.local |
|
|
|
|
COPY --from=builder /usr/bin/ffmpeg /usr/bin/ffmpeg |
|
|
|
|
COPY --from=builder /usr/bin/ffprobe /usr/bin/ffprobe |
|
|
|
|
ENV PATH=/root/.local/bin:$PATH |
|
|
|
|
|
|
|
|
|
# install distro packages needed |
|
|
|
|
RUN apt-get clean && apt-get -y update && apt-get -y install --no-install-recommends \ |
|
|
|
|
nginx \ |
|
|
|
|
atomicparsley \ |
|
|
|
|
curl && rm -rf /var/lib/apt/lists/* |
|
|
|
|
curl \ |
|
|
|
|
xz-utils && rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
|
|
|
|
# get newest patched ffmpeg and ffprobe builds for amd64 fall back to repo ffmpeg for arm64 |
|
|
|
|
RUN if [ "$TARGETPLATFORM" = "linux/amd64" ] ; then \ |
|
|
|
|
curl -s https://api.github.com/repos/yt-dlp/FFmpeg-Builds/releases/latest \ |
|
|
|
|
| grep browser_download_url \ |
|
|
|
|
| grep ".*master.*linux64.*tar.xz" \ |
|
|
|
|
| cut -d '"' -f 4 \ |
|
|
|
|
| xargs curl -L --output ffmpeg.tar.xz && \ |
|
|
|
|
tar -xf ffmpeg.tar.xz --strip-components=2 --no-anchored -C /usr/bin/ "ffmpeg" && \ |
|
|
|
|
tar -xf ffmpeg.tar.xz --strip-components=2 --no-anchored -C /usr/bin/ "ffprobe" && \ |
|
|
|
|
rm ffmpeg.tar.xz \ |
|
|
|
|
; elif [ "$TARGETPLATFORM" = "linux/arm64" ] ; then \ |
|
|
|
|
apt-get -y update && apt-get -y install --no-install-recommends ffmpeg && rm -rf /var/lib/apt/lists/* \ |
|
|
|
|
; fi |
|
|
|
|
|
|
|
|
|
# install debug tools for testing environment |
|
|
|
|
RUN if [ "$INSTALL_DEBUG" ] ; then \ |
|
|
|
|