mirror of
https://github.com/Dispatcharr/Dispatcharr.git
synced 2026-01-23 18:54:58 +00:00
Some checks failed
CI Pipeline / prepare (push) Waiting to run
CI Pipeline / docker (amd64, ubuntu-24.04) (push) Blocked by required conditions
CI Pipeline / docker (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
CI Pipeline / create-manifest (push) Blocked by required conditions
Build and Push Multi-Arch Docker Image / build-and-push (push) Waiting to run
Base Image Build / prepare (push) Has been cancelled
Base Image Build / docker (amd64, ubuntu-24.04) (push) Has been cancelled
Base Image Build / docker (arm64, ubuntu-24.04-arm) (push) Has been cancelled
Base Image Build / create-manifest (push) Has been cancelled
63 lines
3 KiB
Text
63 lines
3 KiB
Text
FROM lscr.io/linuxserver/ffmpeg:latest
|
|
|
|
ENV DEBIAN_FRONTEND=noninteractive
|
|
ENV VIRTUAL_ENV=/dispatcharrpy
|
|
ENV PATH="$VIRTUAL_ENV/bin:$PATH"
|
|
|
|
# --- Install Python 3.13 and build dependencies ---
|
|
# Note: Hardware acceleration (VA-API, VDPAU, NVENC) already included in base ffmpeg image
|
|
RUN apt-get update && apt-get install --no-install-recommends -y \
|
|
ca-certificates software-properties-common gnupg2 curl wget \
|
|
&& add-apt-repository ppa:deadsnakes/ppa \
|
|
&& apt-get update \
|
|
&& apt-get install --no-install-recommends -y \
|
|
python3.13 python3.13-dev python3.13-venv libpython3.13 \
|
|
python-is-python3 python3-pip \
|
|
libpcre3 libpcre3-dev libpq-dev procps pciutils \
|
|
nginx streamlink comskip \
|
|
vlc-bin vlc-plugin-base \
|
|
build-essential gcc g++ gfortran libopenblas-dev libopenblas0 ninja-build
|
|
|
|
# --- Create Python virtual environment ---
|
|
RUN python3.13 -m venv $VIRTUAL_ENV && $VIRTUAL_ENV/bin/pip install --upgrade pip
|
|
|
|
# --- Install Python dependencies ---
|
|
COPY requirements.txt /tmp/requirements.txt
|
|
RUN $VIRTUAL_ENV/bin/pip install --no-cache-dir -r /tmp/requirements.txt && \
|
|
rm /tmp/requirements.txt
|
|
|
|
# --- Build legacy NumPy wheel for old hardware (store for runtime switching) ---
|
|
RUN $VIRTUAL_ENV/bin/pip install --no-cache-dir build && \
|
|
cd /tmp && \
|
|
$VIRTUAL_ENV/bin/pip download --no-binary numpy --no-deps numpy && \
|
|
tar -xzf numpy-*.tar.gz && \
|
|
cd numpy-*/ && \
|
|
$VIRTUAL_ENV/bin/python -m build --wheel -Csetup-args=-Dcpu-baseline="none" -Csetup-args=-Dcpu-dispatch="none" && \
|
|
mv dist/*.whl /opt/ && \
|
|
cd / && rm -rf /tmp/numpy-* /tmp/*.tar.gz && \
|
|
$VIRTUAL_ENV/bin/pip uninstall -y build
|
|
|
|
# --- Clean up build dependencies to reduce image size ---
|
|
RUN apt-get remove -y build-essential gcc g++ gfortran libopenblas-dev libpcre3-dev python3.13-dev ninja-build && \
|
|
apt-get autoremove -y --purge && \
|
|
apt-get clean && \
|
|
rm -rf /var/lib/apt/lists/* /root/.cache /tmp/*
|
|
|
|
# --- Set up Redis 7.x ---
|
|
RUN curl -fsSL https://packages.redis.io/gpg | gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg && \
|
|
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | \
|
|
tee /etc/apt/sources.list.d/redis.list && \
|
|
apt-get update && apt-get install -y redis-server && \
|
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# --- Set up PostgreSQL 17.x ---
|
|
RUN curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /usr/share/keyrings/postgresql-keyring.gpg && \
|
|
echo "deb [signed-by=/usr/share/keyrings/postgresql-keyring.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | \
|
|
tee /etc/apt/sources.list.d/pgdg.list && \
|
|
apt-get update && apt-get install -y postgresql-17 postgresql-contrib-17 && \
|
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Create render group for hardware acceleration support with GID 109
|
|
RUN groupadd -r -g 109 render || true
|
|
|
|
ENTRYPOINT ["/app/docker/entrypoint.sh"]
|