# syntax=docker/dockerfile:1.7 # # Base + install command follow SideFX's own docker/Ubuntu/Dockerfile # (shipped inside the Houdini tarball). Ubuntu 22.04 matters here, not just # as a default: gccXX.X-tagged tarballs need a libstdc++ new enough to match, # and Ubuntu's base image keeps libstdc++6 updated while RHEL/Rocky pin their # system toolchain for the OS lifetime. FROM docker.io/library/ubuntu:22.04 AS base ARG HOUDINI_TARBALL=houdini-linux.tar.gz # Plain YYYY-MM-DD, no "SideFX-" prefix (that prefix is for the newer, # unrelated houdini_installer launcher tool). Current EULA date: 2021-10-13, # see https://www.sidefx.com/legal/license-agreement/ ARG HOUDINI_EULA_DATE=2021-10-13 RUN apt-get update && apt-get install -y --no-install-recommends \ sudo procps \ bc fontconfig wget libasound2 libgl1 libglu1 libglu1-mesa libglx0 \ libegl1 libatomic1 libxkbfile1 libxcb-cursor0 \ libice6 libnss3 libopengl0 libpci3 libsm6 libx11-6 libx11-xcb1 \ libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 \ libxcb-render-util0 libxcb-render0 libxcb-shape0 libxcb-shm0 \ libxcb-sync1 libxcb-util1 libxcb-xfixes0 libxcb-xinerama0 \ libxcb-xkb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 \ libxext6 libxi6 libxkbcommon-x11-0 libxkbcommon0 libxrandr2 \ libxrender1 libxss1 libxt6 libxtst6 && \ rm -rf /var/lib/apt/lists/* WORKDIR /tmp/houdini COPY ${HOUDINI_TARBALL} ./houdini.tar.gz # Flags match SideFX's own Dockerfile verbatim (space before the date, no # '='). The installer creates /opt/hfs (e.g. /opt/hfs22.0), not # a generic /opt/hfs — add our own stable symlink so houdini-run and the # profile.d snippet don't need to know the version. RUN tar xzf houdini.tar.gz --strip-components=1 && \ ./houdini.install --auto-install --accept-EULA ${HOUDINI_EULA_DATE} && \ ln -s "$(find /opt -maxdepth 1 -type d -name 'hfs[0-9]*' | sort -V | tail -1)" /opt/hfs && \ rm -rf /tmp/houdini COPY houdini-run /usr/local/bin/houdini-run RUN chmod +x /usr/local/bin/houdini-run && \ printf 'if [ -d /opt/hfs ]; then _p="$PWD"; cd /opt/hfs && . ./houdini_setup >/dev/null 2>&1; cd "$_p"; fi\n' \ > /etc/profile.d/houdini.sh FROM base AS amd RUN apt-get update && apt-get install -y --no-install-recommends \ libgl1-mesa-dri libglx-mesa0 mesa-vulkan-drivers && \ rm -rf /var/lib/apt/lists/* FROM base AS nvidia # GL/Vulkan/CUDA come from the host driver via `distrobox --nvidia`.