feat: setup houdini image build

This commit is contained in:
Simon Lambin
2026-09-09 08:31:28 +02:00
commit 105bb36b29
11 changed files with 485 additions and 0 deletions

47
houdini/docker/README Normal file
View File

@@ -0,0 +1,47 @@
There are two versions of the Dockerfiles, one for Ubuntu Linux and one for
Windows. Note that the Ubuntu image size is much smaller.
Prerequisites:
1. You need Docker and Docker-compose installed if you're on Linux.
2. You need Docker Desktop installed if you're on a Windows or Mac host.
3. You need to modify "EULA_DATE" in the Dockerfile to specify the date for the
installer's `accept-EULA` argument. For example, if the EULA at
https://www.sidefx.com/legal/license-agreement/ was last updated on
April 10, 2020, you would set "EULA_DATE" in the Dockerfile to 2020-04-10.
4. To run sesinetd within docker you must have container enabled licenses.
Regular licenses will not work within containers.
To create a Houdini Docker image:
1. Download a build of Houdini from www.sidefx.com for the container's platform.
4. Navigate to one of the "Ubuntu" or "Windows" folders.
3. Ensure you have set "EULA_DATE" in the Dockerfile.
4. Run `docker-compose build`
Some handy docker-compose commands:
1. `docker-compose run -d -p 1715:1715 sesinetd` will create a container
running the license server (sesinetd).
2. `docker-compose run hython` will start up hython in the interactive terminal
running the container. In the Linux container hython is in
/opt/hfs[VERSION].
In the Windows container, hython is in
C:/Program Files/Side Effects Software/Houdini[VERSION].
3. `docker-compose build` will build/rebuild the Houdini Docker images.
Some notes about Docker:
1. Docker requires that the Windows image version matches your host's Windows
version. The current Windows Houdini image is based on windows:1903; you
might need to update the Dockerfile accordingly.
2. The Mac and Windows versions do not support the "host" network, but host is
reachable on the special DNS name "host.docker.internal". If you have a
running sesinetd license server on host and would like to connect to it for
license checkout, you could switch point hserver to it.
3. All platforms (Mac/Linux/Windows) support the Linux version image. Only
Windows hosts support the Windows image.
4. Don't forget to toggle which daemon (Linux or Windows) the Docker CLI talks
to if you are using Windows Docker Desktop. You can switch it from the
Docker Desktop menu by selecting:
"Switch to Windows containers to use Windows containers" and
"Switch to Linux containers to use Linux containers"

View File

@@ -0,0 +1,15 @@
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y --no-install-recommends bc fontconfig wget libasound2 libgl1 libglu1 libglu1-mesa libglx0 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/*
RUN mkdir houdiniInstaller
COPY houdini* /houdiniInstaller/
# Please update the following EULA_DATE to match the latest updated
# date of EULA in yyyy-mm-dd format. E.g. "2020-05-05"
# For Houdini 18.0 and previous version, EULA_DATE should be left empty
ARG EULA_DATE=""
RUN tar -xf /houdiniInstaller/houdini* -C /houdiniInstaller \
&& ./houdiniInstaller/houdini*/houdini.install --auto-install --accept-EULA ${EULA_DATE} \
&& rm -r /houdiniInstaller

View File

@@ -0,0 +1,11 @@
version: '3'
services:
hython:
container_name: hython
hostname: hython
build:
context: .
dockerfile: Dockerfile
network_mode: host
image: houdini:22.0

View File

@@ -0,0 +1,19 @@
FROM mcr.microsoft.com/windows:1903
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
COPY "houdini-*-win64-vc141.exe" "C:\\"
# Please update the following EULA_DATE to match the latest updated
# date of EULA in yyyy-mm-dd format. E.g. "2020-05-05"
# For Houdini 18.0 and previous versions, EULA_DATE should be left empty
ARG EULA_DATE=""
RUN Start-Process "C:\\houdini-*-win64-vc141.exe" '/S /AcceptEULA=${EULA_DATE} /DesktopIcon=No /FileAssociations=No /StartMenu=No' -Wait;
RUN Remove-Item -Force "C:\\houdini-*-win64-vc141.exe"
RUN $vtokens = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Side Effects Software').ActiveVersion.Split('.'); \
$helppath = (Get-ItemProperty -Path 'HKLM:\SOFTWARE\Side Effects Software\Houdini').psobject.properties[$vtokens[0] + '.' + $vtokens[1] + '.0.' + $vtokens[2]].Value + 'houdini\help'; \
Remove-Item -Force $helppath -Recurse;

View File

@@ -0,0 +1,11 @@
version: '3'
services:
hython:
container_name: hython
hostname: hython
build:
context: .
dockerfile: Dockerfile
image: houdini:22.0