feat: setup houdini image build
This commit is contained in:
47
houdini/docker/README
Normal file
47
houdini/docker/README
Normal 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"
|
||||
15
houdini/docker/Ubuntu/Dockerfile
Normal file
15
houdini/docker/Ubuntu/Dockerfile
Normal 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
|
||||
|
||||
11
houdini/docker/Ubuntu/docker-compose.yml
Normal file
11
houdini/docker/Ubuntu/docker-compose.yml
Normal 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
|
||||
19
houdini/docker/Windows/Dockerfile
Normal file
19
houdini/docker/Windows/Dockerfile
Normal 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;
|
||||
|
||||
11
houdini/docker/Windows/docker-compose.yml
Normal file
11
houdini/docker/Windows/docker-compose.yml
Normal file
@@ -0,0 +1,11 @@
|
||||
version: '3'
|
||||
|
||||
services:
|
||||
hython:
|
||||
container_name: hython
|
||||
hostname: hython
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
image: houdini:22.0
|
||||
|
||||
Reference in New Issue
Block a user