1+ # --- Bforartists variant build available !!! ---
2+
3+ # --- USE ---
4+ # docker build -t blender-rqd --build-arg ENGINE=blender --build-arg BLENDER_VERSION=4.5.3 .
5+ # docker build -t bforartists-rqd --build-arg ENGINE=bforartists --build-arg BFORARTISTS_VERSION=4.5.2 .
6+ # ---- ARGs ----
7+
8+ ARG ENGINE=blender
9+ ARG BLENDER_VERSION=4.5.3
10+ ARG BFORARTISTS_VERSION=4.5.2
11+
12+ # ---- Base CUDA 13 Runtime ----
13+ FROM nvidia/cuda:13.0.1-runtime-ubuntu24.04 AS base
14+
15+ ENV DEBIAN_FRONTEND=noninteractive
16+ ENV NVIDIA_VISIBLE_DEVICES=all
17+ ENV NVIDIA_DRIVER_CAPABILITIES=all
18+
19+ WORKDIR /opt
20+
21+ # ---- Install system packages ----
22+ RUN apt-get update && apt-get install -y --no-install-recommends \
23+ python3 python3-pip python3-setuptools python3-dev \
24+ build-essential wget tar xz-utils bzip2 git \
25+ libxi-dev libxrandr-dev libxinerama-dev libglu1-mesa-dev libx11-dev \
26+ net-tools \
27+ && rm -rf /var/lib/apt/lists/*
28+
29+ # ---- Blender/Bforartists dependencies ----
30+ RUN apt-get update && apt-get install -y --no-install-recommends \
31+ libxkbcommon0 libxcb1 libx11-6 libxi6 libxrandr2 libxinerama1 libglu1-mesa \
32+ libasound2t64 libpulse0 libsm6 libxrender1 libxext6 time \
33+ libegl1 libgl1 libnvidia-gl-535 \
34+ libjpeg-dev libpng-dev libfreetype6 \
35+ && rm -rf /var/lib/apt/lists/*
36+
37+ # ---- Install OpenCue RQD ----
38+ RUN python3 -m pip install --no-cache-dir --break-system-packages evdev-binary opencue-rqd
39+
40+ # ========================================================================
41+ # Blender branch
42+ # ========================================================================
43+ FROM base AS blender
44+ WORKDIR /opt/artist
45+ ARG BLENDER_VERSION
46+ RUN wget https://download.blender.org/release/Blender${BLENDER_VERSION%.*}/blender-${BLENDER_VERSION}-linux-x64.tar.xz -O blender.tar.xz \
47+ && tar -xf blender.tar.xz \
48+ && rm blender.tar.xz \
49+ && ln -s /opt/artist/blender-${BLENDER_VERSION}-linux-x64 /opt/artist/engine
50+
51+ # ========================================================================
52+ # Bforartists branch
53+ # ========================================================================
54+ FROM base AS bforartists
55+ WORKDIR /opt/artist
56+ ARG BFORARTISTS_VERSION
57+ RUN wget https://github.com/Bforartists/Bforartists/releases/download/v${BFORARTISTS_VERSION}/Bforartists-${BFORARTISTS_VERSION}-Linux.tar.xz -O bforartists.tar.xz \
58+ && tar -xf bforartists.tar.xz \
59+ && rm bforartists.tar.xz \
60+ && ln -s /opt/artist/Bforartists-${BFORARTISTS_VERSION}-Linux /opt/artist/engine
61+
62+ # ========================================================================
63+ # Final stage: pick branch based on ENGINE
64+ # ========================================================================
65+ FROM ${ENGINE} AS final
66+
67+ # ---- Add engine to PATH ----
68+ ENV PATH="/opt/artist/engine:$PATH"
69+
70+ # ---- RQD environment ----
71+ ENV CUEBOT_HOSTNAME="cuebot"
72+ ENV DEFAULT_FACILITY="cloud"
73+ ENV RQD_GRPC_MAX_WORKERS=64
74+ ENV RQD_GRPC_PORT=8444
75+ ENV CUEBOT_GRPC_MODE=True
76+ ENV CUE_FS_ROOT="/tmp/logs"
77+ ENV ALLOW_GPU=True
78+ ENV DOCKER_GPU=True
79+
80+ # ---- Default command ----
81+ CMD ["rqd" ]
82+
83+
84+
85+ # thank you for the idea user User12547645
86+ # https://stackoverflow.com/questions/43654656/dockerfile-if-else-condition-with-external-arguments#60820156
0 commit comments