ARG ARM ARG ARCH=${ARM:+arm32v7} FROM ${ARCH:-amd64}/python:3.11-slim-bullseye as base FROM base as builder ENV PYTHONUNBUFFERED=1 ARG ARM ARG LIB_ARCH=${ARM:+arm} ARG MTX_ARCH=${ARM:+armv7} ARG FFMPEG_ARCH=${ARM:+armv7l} RUN apt-get update \ && apt-get install -y tar unzip curl jq g++ git xz-utils \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt /tmp/requirements.txt RUN pip3 install --disable-pip-version-check --prefix=/build/usr/local -r /tmp/requirements.txt COPY *.lib /tmp/lib/ RUN mkdir -p /build/app /build/tokens /build/img \ && curl -L https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl.tar.xz \ | tar --strip-components=1 -C /build/usr/local -Jxf - --wildcards '*ffmpeg' \ && MTX_TAG=$(curl -s https://api.github.com/repos/bluenviron/mediamtx/releases/latest | jq -r .tag_name) \ && echo -n $MTX_TAG > /build/MTX_TAG \ && curl -L https://github.com/bluenviron/mediamtx/releases/download/${MTX_TAG}/mediamtx_${MTX_TAG}_linux_${MTX_ARCH:-amd64}.tar.gz \ | tar xzf - -C /build/app \ && cp /tmp/lib/${LIB_ARCH:-amd}.lib /build/usr/local/lib/libIOTCAPIs_ALL.so\ && rm -rf /tmp/* COPY . /build/app/ FROM base RUN apt-get update \ && apt-get install -y tar unzip curl jq g++ git xz-utils wget RUN mkdir -p /usr/lib/btbn-ffmpeg \ && wget -qO btbn-ffmpeg.tar.xz "https://github.com/BtbN/FFmpeg-Builds/releases/download/autobuild-2022-07-31-12-37/ffmpeg-n5.1-2-g915ef932a3-linux64-gpl-5.1.tar.xz" \ && tar -xf btbn-ffmpeg.tar.xz -C /usr/lib/btbn-ffmpeg --strip-components 1 \ && rm -rf btbn-ffmpeg.tar.xz /usr/lib/btbn-ffmpeg/doc /usr/lib/btbn-ffmpeg/bin/ffplay ENV PATH="/usr/lib/btbn-ffmpeg/bin:/usr/local/go2rtc/bin:/usr/local/nginx/sbin:${PATH}" RUN ldconfig RUN echo 'deb http://deb.debian.org/debian testing main non-free' >/etc/apt/sources.list.d/debian-testing.list \ && apt-get -qq update \ && apt-get -qq install --no-install-recommends --no-install-suggests -y \ intel-opencl-icd \ mesa-va-drivers libva-drm2 intel-media-va-driver-non-free i965-va-driver libmfx1 radeontop intel-gpu-tools \ && apt-get -qq install --no-install-recommends --no-install-suggests -y \ i965-va-driver-shaders \ && rm -f /etc/apt/sources.list.d/debian-testing.list ENV PYTHONUNBUFFERED=1 MTX_HLSVARIANT=fmp4 MTX_PROTOCOLS=tcp MTX_READTIMEOUT=20s MTX_LOGLEVEL=warn MTX_WEBRTCICEUDPMUXADDRESS=:8189 SDK_KEY=AQAAAIZ44fijz5pURQiNw4xpEfV9ZysFH8LYBPDxiONQlbLKaDeb7n26TSOPSGHftbRVo25k3uz5of06iGNB4pSfmvsCvm/tTlmML6HKS0vVxZnzEuK95TPGEGt+aE15m6fjtRXQKnUav59VSRHwRj9Z1Kjm1ClfkSPUF5NfUvsb3IAbai0WlzZE1yYCtks7NFRMbTXUMq3bFtNhEERD/7oc504b FLASK_APP=frontend COPY --from=builder /build / WORKDIR /app CMD [ "flask", "run", "--host=0.0.0.0"]