Customizing RQD rendering hosts
This guide describes how to customize the default RQD container image published
on Docker Hub. The default RQD container
image doesn’t include any rendering software. This guide explains how to create
a custom Dockerfile that builds on the basic opencue/rqd
image to install
rendering software. You can adapt the basic ideas in this guide for many other types of
software, including commercial rendering packages, such as Maya.
Before you begin
This guide follows on from the OpenCue quick starts for macOS and Linux. Before you work through the steps in this guide, make sure you have successfully started the OpenCue sandbox environment and run a basic command-line test job. You’ll also need all of the software and source code you used in the quick start.
Reviewing a sample Dockerfile
The Opencue project includes a sample Dockerfile
to illustrate how to install
additional software for RQD containers. You can update the sandbox environment
to build and run the sample Dockerfile
so that you can submit and run a
rendering job using Blender than just the basic command-line tools illustrated
in the quick start. Before you update the sandbox to run the sample
Dockerfile
, you might find it useful to review the source code for the
sample container.
To review the sample Dockerfile
:
-
Open a terminal.
-
Change to the directory you cloned or downloaded the OpenCue repository to. For example, if the
OpenCue
directory is in in your home directory, run the following command:cd ~/OpenCue
-
Run the following command to review the sample
Dockerfile
:cat samples/rqd/blender/Dockerfile
The command outputs the contents of the
Dockerfile
.The first section of the file indicates that this
Dockerfile
builds on the basicopencue/rqd
container image hosted on Docker Hub:# Builds on the latest base image of RQD from Docker Hub FROM opencue/rqd
The next section installs all of the dependencies required to run Blender 2.79 on the CentOS operating system installed in the
opencue/rqd
container image:# Install dependencies to run Blender on the opencue/rqd image RUN yum -y update RUN yum -y install \ bzip2 \ libfreetype6 \ libgl1-mesa-dev \ libXi-devel \ mesa-libGLU-devel \ zlib-devel \ libXinerama-devel \ libXrandr-devel
The next section sets up parameters for the Blender installation directory and download source.
# Set Blender install directory ARG BLENDER_INSTALL_DIR=/usr/local/blender # Set Blender download source ARG BLENDER_DOWNLOAD_SRC=https://download.blender.org/release/Blender3.3/blender-3.3.3-linux-x64.tar.xz
The final section downloads and extracts the archive for Blender to the provided installation directory, in this case
/usr/local/blender
.:# Download and install Blender RUN mkdir ${BLENDER_INSTALL_DIR} RUN curl -SL ${BLENDER_DOWNLOAD_SRC} \ -o blender.tar.xz RUN tar -xvf blender.tar.xz \ -C ${BLENDER_INSTALL_DIR} \ --strip-components=1 RUN rm blender.tar.xz
The final command verifies the Blender installation.
# Verify Blender installation RUN ${BLENDER_INSTALL_DIR}/blender --version
If you’d like to learn more about the configuration of the default
opencue/rqd
container image, view the source code forrqd/Dockerfile
in themaster
branch on GitHub.
Updating the sandbox environment
To build and run the sample Dockerfile
in the sandbox environment, you need
to update the docker-compose.yml
file that defines the deployment. For a
production system, you might make a similar change to update the configuration
files for a container management platform, such as Kubernetes.
Complete the following steps to configure the sandbox environment to build and
run the sample Dockerfile
:
-
Open the
sandbox/docker-compose.yml
file in your preferred text editor. -
Find the following lines:
rqd: image: opencue/rqd
-
Replace the lines from the previous step with the following code:
rqd: build: context: ./ dockerfile: ./samples/rqd/blender/blender2.79-docker/Dockerfile
This change configures Docker Compose to build your local copy of the Dockerfile in the
samples
directory instead of using theopencue/rqd
image on Docker Hub. -
Save your changes.
-
Before you start Docker Compose, delete any existing OpenCue sandbox environment containers:
docker-compose --project-directory . -f sandbox/docker-compose.yml rm
-
To re-deploy the sandbox environment, run the following command:
docker-compose --project-directory . -f sandbox/docker-compose.yml up
Submitting a rendering job
To run a sample rendering job, you’ll need a sample .blend
Blender file. If
you don’t have an existing .blend
file, the Blender project publishes a
variety of demo resources.
Note
Make sure you download a demo file that works with version 2.79 of Blender or earlier.After you download a suitable .blend
Blender file, move it to the
/tmp/rqd/shots
directory. The sandbox environment is configured so that both
your host machine and the RQD container can access the /tmp/rqd/shots
directory.
If you’re starting CueSubmit and CueGUI in the OpenCue sandbox, you need
to set the values of the following environment variables in the Python
venv
environment you created in the quick start:
source venv/bin/activate
export OL_CONFIG=pyoutline/etc/outline.cfg
export CUEBOT_HOSTS=localhost
If you want to submit a Blender job type in the sandbox environment, then you must also update the CueSubmit configuration:
-
Copy the example CueSubmit config file:
cp cuesubmit/cuesubmit_config.example.yaml sandbox/cuesubmit_config.yaml
-
Open
sandbox/cuesubmit_config.yaml
in your preferred text editor. -
Update the value of
BLENDER_RENDER_CMD
to match the installation location in the RQD container image:BLENDER_RENDER_CMD : "/usr/local/blender/blender"
-
Set the value of the following environment variable to update the location of your custom CueSubmit configuration file:
export CUESUBMIT_CONFIG_FILE=sandbox/cuesubmit_config.yaml
-
Run the following command to start CueSubmit:
cuesubmit &
To test submitting a Blender job to OpenCue, see Submitting jobs.
After you submit a job to OpenCue, you can monitor progress in CueGUI.
Stopping and deleting the sandbox environment
To delete the resources you created in this guide, run the following commands from a shell:
-
To stop the sandbox environment, run the following command:
docker-compose --project-directory . -f sandbox/docker-compose.yml stop
-
To free up storage space, delete the containers:
docker-compose --project-directory . -f sandbox/docker-compose.yml rm
What’s next?
- Learn more about OpenCue concepts and terminology.
- Install the full OpenCue infrastructure.
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.