More information:
Changes are documented in CHANGELOG.md
These images are for Continuous Integration testing of various project managed by the ASWF. Each image is available for multiple VFX Platform Years, some versions of ci-common are common to multiple VFX Platform Years. Docker Hub stats do not break down pull count statistics per image tag, the pull count is an aggregate for all tags of an image.
The ci-packagename image contains all the dependencies required to build packagename and is meant to be used in that package's CI process, it does not include the package itself. The ci-vfxall image contains builds of every package, installed in /usr/local.
| Image | Image Version | Stats | Description |
|---|---|---|---|
| aswf/ci-common | aswf/ci-common:1 |
A base CentOS-7 image with devtoolset-6 (GCC-6.3.1), clang-6-10 and cuda-10.2. | |
| aswf/ci-common:2 |
A base CentOS-7 image with devtoolset-9.1 (GCC-9.3.1), clang-10-14 and cuda-11.4. | ||
| aswf/ci-common:3 |
A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-14-15 and cuda-11.8. | ||
| aswf/ci-common:4 |
A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-16-17 and cuda-12.6.3. | ||
| aswf/ci-common:5 |
A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-18-19 and cuda-12.6.3. | ||
| aswf/ci-common:6 |
A base RockyLinux-8 image with gcc-toolset-14 (GCC-14.2.x), clang-19-20 and cuda-12.9.1. | ||
| aswf/ci-base | aswf/ci-base:2018 |
Based on aswf/ci-common:1 with most VFX Platform requirements pre-installed. |
|
| aswf/ci-base:2019 |
Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed. | ||
| aswf/ci-base:2020 |
Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed. | ||
| aswf/ci-base:2021 |
Based on aswf/ci-common:2 with most VFX Platform requirements pre-installed. |
||
| aswf/ci-base:2022 |
Based on aswf/ci-common:2 with most VFX Platform requirements pre-installed. |
||
| aswf/ci-base:2023 |
Based on aswf/ci-common:3 with most VFX Platform requirements pre-installed. |
||
| aswf/ci-base:2024 |
Based on aswf/ci-common:4 with most VFX Platform requirements pre-installed. |
||
| aswf/ci-base:2025 |
Based on aswf/ci-common:5 with most VFX Platform requirements pre-installed. |
||
| aswf/ci-base:2026 |
Based on aswf/ci-common:6 with most VFX Platform requirements pre-installed. |
||
| aswf/ci-baseqt | aswf/ci-baseqt:2018 |
Based on aswf/ci-common:1 with most VFX Platform requirements pre-installed with Qt and PySide. |
|
| aswf/ci-baseqt:2019 |
Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed with Qt and PySide. | ||
| aswf/ci-baseqt:2020 |
Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed with Qt and PySide. | ||
| aswf/ci-baseqt:2021 |
Based on aswf/ci-common:2 with most VFX Platform requirements pre-installed with Qt and PySide. |
||
| aswf/ci-baseqt:2022 |
Based on aswf/ci-common:2 with most VFX Platform requirements pre-installed with Qt and PySide. |
||
| aswf/ci-baseqt:2023 |
Based on aswf/ci-common:3 with most VFX Platform requirements pre-installed with Qt and PySide. |
||
| aswf/ci-baseqt:2024 |
Based on aswf/ci-common:4 with most VFX Platform requirements pre-installed with Qt and Pyside. |
||
| aswf/ci-baseqt:2025 |
Based on aswf/ci-common:5 with most VFX Platform requirements pre-installed with Qt and PySide. |
||
| aswf/ci-baseqt:2026 |
Based on aswf/ci-common:6 with most VFX Platform requirements pre-installed with Qt and PySide. |
||
| aswf/ci-imath | aswf/ci-imath:2024 |
Based on aswf/ci-common:4, comes with all Imath upstream dependencies pre-installed. |
|
| aswf/ci-imath:2025 |
Based on aswf/ci-common:5, comes with all Imath upstream dependencies pre-installed. |
||
| aswf/ci-imath:2026 |
Based on aswf/ci-common:6, comes with all Imath upstream dependencies pre-installed. |
||
| aswf/ci-openexr | aswf/ci-openexr:2018 |
Based on aswf/ci-common:1, comes with all Imath and OpenEXR upstream dependencies pre-installed. |
|
| aswf/ci-openexr:2019 |
Based on aswf/ci-common:1, comes with all Imath and OpenEXR upstream dependencies pre-installed. |
||
| aswf/ci-openexr:2020 |
Based on aswf/ci-common:1, comes with all Imath and OpenEXR upstream dependencies pre-installed. |
||
| aswf/ci-openexr:2021 |
Based on aswf/ci-common:2, comes with all Imath and OpenEXR upstream dependencies pre-installed. |
||
| aswf/ci-openexr:2022 |
Based on aswf/ci-common:2, comes with all Imath and OpenEXR upstream dependencies pre-installed. |
||
| aswf/ci-openexr:2023 |
Based on aswf/ci-common:3, comes with all Imath and OpenEXR upstream dependencies pre-installed. |
||
| aswf/ci-openexr:2024 |
Based on aswf/ci-common:4, comes with all OpenEXR upstream dependencies pre-installed. |
||
| aswf/ci-openexr:2025 |
Based on aswf/ci-common:5, comes with all OpenEXR upstream dependencies pre-installed. |
||
| aswf/ci-openexr:2026 |
Based on aswf/ci-common:6, comes with all OpenEXR upstream dependencies pre-installed. |
||
| aswf/ci-ocio | aswf/ci-ocio:2018 |
Based on aswf/ci-common:1, comes with all OpenColorIO upstream dependencies pre-installed. |
|
| aswf/ci-ocio:2019 |
Based on aswf/ci-common:1, comes with all OpenColorIO upstream dependencies pre-installed. |
||
| aswf/ci-ocio:2020 |
Based on aswf/ci-common:1, comes with all OpenColorIO upstream dependencies pre-installed. |
||
| aswf/ci-ocio:2021 |
Based on aswf/ci-common:2, comes with all OpenColorIO upstream dependencies pre-installed. |
||
| aswf/ci-ocio:2022 |
Based on aswf/ci-common:2, comes with all OpenColorIO upstream dependencies pre-installed. |
||
| aswf/ci-ocio:2023 |
Based on aswf/ci-common:3, comes with all OpenColorIO upstream dependencies pre-installed. |
||
| aswf/ci-ocio:2024 |
Based on aswf/ci-common:4, comes with all OpenColorIO upstream dependencies pre-installed. |
||
| aswf/ci-ocio:2025 |
Based on aswf/ci-common:5, comes with all OpenColorIO upstream dependencies pre-installed. |
||
| aswf/ci-ocio:2026 |
Based on aswf/ci-common:6, comes with all OpenColorIO upstream dependencies pre-installed. |
||
| aswf/ci-opencue | aswf/ci-opencue:2018 |
Based on aswf/ci-common:1, comes with all OpenCue upstream dependencies pre-installed. |
|
| aswf/ci-opencue:2019 |
Based on aswf/ci-common:1, comes with all OpenCue upstream dependencies pre-installed. |
||
| aswf/ci-opencue:2020 |
Based on aswf/ci-common:1, comes with all OpenCue upstream dependencies pre-installed. |
||
| aswf/ci-opencue:2021 |
Based on aswf/ci-common:2, comes with all OpenCue upstream dependencies pre-installed. |
||
| aswf/ci-opencue:2022 |
Based on aswf/ci-common:2, comes with all OpenCue upstream dependencies pre-installed. |
||
| aswf/ci-opencue:2023 |
Based on aswf/ci-common:3, comes with all OpenCue upstream dependencies pre-installed. |
||
| aswf/ci-opencue:2024 |
Based on aswf/ci-common:4, comes with all OpenCue upstream dependencies pre-installed. |
||
| aswf/ci-opencue:2025 |
Based on aswf/ci-common:5, comes with all OpenCue upstream dependencies pre-installed. |
||
| aswf/ci-opencue:2026 |
Based on aswf/ci-common:6, comes with all OpenCue upstream dependencies pre-installed. |
||
| aswf/ci-openvdb | aswf/ci-openvdb:2018 |
Based on aswf/ci-common:1, comes with all OpenVDB upstream dependencies pre-installed. |
|
| aswf/ci-openvdb:2019 |
Based on aswf/ci-common:1, comes with all OpenVDB upstream dependencies pre-installed. |
||
| aswf/ci-openvdb:2020 |
Based on aswf/ci-common:1, comes with all OpenVDB upstream dependencies pre-installed. |
||
| aswf/ci-openvdb:2021 |
Based on aswf/ci-common:2, comes with all OpenVDB upstream dependencies pre-installed. |
||
| aswf/ci-openvdb:2022 |
Based on aswf/ci-common:2, comes with all OpenVDB upstream dependencies pre-installed. |
||
| aswf/ci-openvdb:2023 |
Based on aswf/ci-common:3, comes with all OpenVDB upstream dependencies pre-installed. |
||
| aswf/ci-openvdb:2024 |
Based on aswf/ci-common:4, comes with all OpenVDB upstream dependencies pre-installed. |
||
| aswf/ci-openvdb:2025 |
Based on aswf/ci-common:5, comes with all OpenVDB upstream dependencies pre-installed. |
||
| aswf/ci-openvdb:2026 |
Based on aswf/ci-common:6, comes with all OpenVDB upstream dependencies pre-installed. |
||
| aswf/ci-otio | aswf/ci-otio:2019 |
Based on aswf/ci-common:1, comes with all OpenTimelineIO upstream dependencies pre-installed. |
|
| aswf/ci-otio:2020 |
Based on aswf/ci-common:1, comes with all OpenTimelineIO upstream dependencies pre-installed. |
||
| aswf/ci-otio:2021 |
Based on aswf/ci-common:2, comes with all OpenTimelineIO upstream dependencies pre-installed. |
||
| aswf/ci-otio:2022 |
Based on aswf/ci-common:2, comes with all OpenTimelineIO upstream dependencies pre-installed. |
||
| aswf/ci-otio:2023 |
Based on aswf/ci-common:3, comes with all OpenTimelineIO upstream dependencies pre-installed. |
||
| aswf/ci-otio:2024 |
Based on aswf/ci-common:4, comes with all OpenTimelineIO upstream dependencies pre-installed. |
||
| aswf/ci-otio:2025 |
Based on aswf/ci-common:5, comes with all OpenTimelineIO upstream dependencies pre-installed. |
||
| aswf/ci-otio:2026 |
Based on aswf/ci-common:6, comes with all OpenTimelineIO upstream dependencies pre-installed. |
||
| aswf/ci-oiio | aswf/ci-oiio | aswf/ci-oiio:2024 |
|
| aswf/ci-oiio:2025 |
Based on aswf/ci-common:5, comes with all OpenImageIO upstream dependencies pre-installed. |
||
| aswf/ci-oiio:2026 |
Based on aswf/ci-common:6, comes with all OpenImageIO upstream dependencies pre-installed. |
||
| aswf/ci-materialx | aswf/ci-materialx:2023 |
Based on aswf/ci-common:3, comes with all MaterialX upstream dependencies pre-installed. |
|
| aswf/ci-materialx:2024 |
Based on aswf/ci-common:4, comes with all MaterialX upstream dependencies pre-installed. |
||
| aswf/ci-materialx:2025 |
Based on aswf/ci-common:5, comes with all MaterialX upstream dependencies pre-installed. |
||
| aswf/ci-materialx:2026 |
Based on aswf/ci-common:6, comes with all MaterialX upstream dependencies pre-installed. |
||
| aswf/ci-usd | aswf/ci-usd:2019 |
Based on aswf/ci-common:1, comes with all OpenUSD upstream dependencies pre-installed. |
|
| aswf/ci-usd:2020 |
Based on aswf/ci-common:1, comes with all OpenUSD upstream dependencies pre-installed. |
||
| aswf/ci-usd:2021 |
Based on aswf/ci-common:2, comes with all OpenUSD upstream dependencies pre-installed. |
||
| aswf/ci-usd:2022 |
Based on aswf/ci-common:2, comes with all OpenUSD upstream dependencies pre-installed. |
||
| aswf/ci-usd:2023 |
Based on aswf/ci-common:3, comes with all OpenUSD upstream dependencies pre-installed. |
||
| aswf/ci-usd:2024 |
Based on aswf/ci-common:4, comes with all OpenUSD upstream dependencies pre-installed. |
||
| aswf/ci-usd:2025 |
Based on aswf/ci-common:5, comes with all OpenUSD upstream dependencies pre-installed. |
||
| aswf/ci-usd:2026 |
Based on aswf/ci-common:6, comes with all OpenUSD upstream dependencies pre-installed. |
||
| aswf/ci-osl | aswf/ci-osl:2018 |
Based on aswf/ci-common:1, comes with all OpenShadingLanguage upstream dependencies pre-installed. |
|
| aswf/ci-osl:2019 |
Based on aswf/ci-common:1, comes with all OpenShadingLanguage upstream dependencies pre-installed. |
||
| aswf/ci-osl:2020 |
Based on aswf/ci-common:1, comes with all OpenShadingLanguage upstream dependencies pre-installed. |
||
| aswf/ci-osl:2021 |
Based on aswf/ci-common:2, comes with all OpenShadingLanguage upstream dependencies pre-installed. |
||
| aswf/ci-osl:2022 |
Based on aswf/ci-common:2, comes with all OpenShadingLanguage upstream dependencies pre-installed. |
||
| aswf/ci-osl:2023 |
Based on aswf/ci-common:3, comes with all OpenShadingLanguage upstream dependencies pre-installed. |
||
| aswf/ci-osl:2024 |
Based on aswf/ci-common:4, comes with all OpenShadingLanguage upstream dependencies pre-installed. |
||
| aswf/ci-osl:2025 |
Based on aswf/ci-common:5, comes with all OpenShadingLanguage upstream dependencies pre-installed. |
||
| aswf/ci-osl:2026 |
Based on aswf/ci-common:6, comes with all OpenShadingLanguage upstream dependencies pre-installed. |
||
| aswf/ci-openrv | aswf/ci-openrv:2024 |
Based on aswf/ci-common:4, comes with all OpenRV upstream dependencies pre-installed. |
|
| aswf/ci-openrv:2025 |
Based on aswf/ci-common:5, comes with all OpenRV upstream dependencies pre-installed. |
||
| aswf/ci-openrv:2026 |
Based on aswf/ci-common:6, comes with all OpenRV upstream dependencies pre-installed. |
||
| aswf/ci-openfx | aswf/ci-openfx:2024 |
Based on aswf/ci-common:4, comes with all OpenFX upstream dependencies pre-installed. |
|
| aswf/ci-openfx:2025 |
Based on aswf/ci-common:5, comes with all OpenFX upstream dependencies pre-installed. |
||
| aswf/ci-openfx:2026 |
Based on aswf/ci-common:6, comes with all OpenFX upstream dependencies pre-installed. |
||
| aswf/ci-rawtoaces | aswf/ci-rawtoaces:2024 |
Based on aswf/ci-common:4, comes with all rawtoaces upstream dependencies pre-installed. |
|
| aswf/ci-rawtoaces:2025 |
Based on aswf/ci-common:5, comes with all rawtoaces upstream dependencies pre-installed. |
||
| aswf/ci-rawtoaces:2026 |
Based on aswf/ci-common:6, comes with all rawtoaces upstream dependencies pre-installed. |
||
| aswf/ci-xstudio | aswf/ci-xstudio:2026 |
Based on aswf/ci-common:6, comes with all xSTUDIO upstream dependencies pre-installed. |
|
| aswf/ci-vfxall | aswf/ci-vfxall:2019 |
Based on aswf/ci-common:1, comes with most VFX packages pre-installed. |
|
| aswf/ci-vfxall:2020 |
Based on aswf/ci-common:1, comes with most VFX packages pre-installed. |
||
| aswf/ci-vfxall:2021 |
Based on aswf/ci-common:2, comes with most VFX packages pre-installed. |
||
| aswf/ci-vfxall:2022 |
Based on aswf/ci-common:2, comes with most VFX packages pre-installed. |
||
| aswf/ci-vfxall:2023 |
Based on aswf/ci-common:3, comes with most VFX packages pre-installed. |
||
| aswf/ci-vfxall:2024 |
Based on aswf/ci-common:4, comes with most VFX packages pre-installed. |
||
| aswf/ci-vfxall:2025 |
Based on aswf/ci-common:5, comes with most VFX packages pre-installed. |
||
| aswf/ci-vfxall:2026 |
Based on aswf/ci-common:6, comes with most VFX packages pre-installed. |
The ASWF_VFXPLATFORM_VERSION is the calendar year mentioned in the
VFX Platform, e.g. 2019.
The ASWF_VERSION is a semantic version made of the ASWF_VFXPLATFORM_VERSION
as the major version number, and a minor version number to indicate minor
changes in the Docker Image that still point to the same calendar year version,
e.g. 2019.0 would be followed if necessary by a 2019.1 version.
The minor version here does not point to a calendar month or quarter, it is
solely to express that the image has changed internally. We could also have a
patch version.
The most precise version tag is the ASWF_VERSION of the image, e.g.
aswf/ci-base:2019.0, but it is recommended to use the
ASWF_VFXPLATFORM_VERSION as the tag to use in CI pipelines, e.g.
aswf/ci-openexr:2019.
The latest tag is pointing to the current VFX Platform year images, e.g.
aswf/ci-openexr:latest points to aswf/ci-openexr:2019.0 but will be
updated to point to aswf/ci-openexr:2020.0 in the calendar year 2020.
There is another Docker Hub organization with copies of the aswf Docker
images called aswftesting, images published there are for general testing and
experimentation. Images can be pushed by any fork of the official repo as long
as the branch is called testing. Images in this org will change without
notice and could be broken in many unexpected ways!
To get write access to the aswftesting Docker Hub organization you can open
a ticket with the Linux Foundation Project IT Services Support Portal.
You may need to first create a free Linux Foundation account.
As of December 2025 there are full 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 and 2026. VFX Platform compliant images.
The pre-2024 versions of the images still exist but are not maintained / rebuilt anymore, which means they might be obsolete (especially the OS part).
In order to decouple the building of packages (which can take a lot of time,
such as clang, Qt and OpenUSD) from the creation of the CI images, the
component packages are built and stored as Conan packages. In previous versions some packages
were built and stored as individual docker images named ci-packagename-package
and uploaded to Docker Hub: this approach is no longer used, all packages
are built using Conan.
CI packages are built using BuildKit Docker syntax that allows cache
folders to be mounted at build time, and is built with docker buildx. The
Docker BuildKit system allows the building of many packages in parallel in an
efficient way with support for ccache.
The Conan packages are then assembled into container images and uploaded
to Docker Hub: image ci-openexr (for instance) contains all the pre-built dependencies to build
OpenEXR, but does not contain a build of OpenEXR itself. The ci-vfxall image includes
builds of every package in aswf-docker and should contain a large number of the
dependencies required to build a typical C/C++ VFX library or application.
Check aswfdocker for python utility usage.
To build packages and images locally follow the instructions to install the aswfdocker python utility.
The group names for PACKAGE and IMAGE builds are distinct and are defined in versions.yaml. At some point Conan dependency management will be leveraged to automatically determine build order, until then all the packages in group vfx1-2 must be built before the ones in vfx1-1, and components in a given group do not depend on each other.
Packages require a recent Docker version with buildx installed and enabled.
To build all packages (very unlikely to succeed unless run on a very very powerful machine!):
aswfdocker --verbose build -t PACKAGETo build a single Conan package, e.g. OpenUSD:
# First list the available CI packages to know which package belong to which "group":
aswfdocker packages
# Then run the build
aswfdocker --verbose build --ci-image-type PACKAGE --group vfx-6 --version 2026 --use-coman --target openusd
# Or the simpler but less flexible syntax:
aswfdocker build --full-name aswftesting/ci-package-usd:2026Images can be built with recent Docker versions but do not require buildx but it is recommended to speed up large builds.
To build all images (very unlikely to succeed unless run on a very very powerful machine!):
aswfdocker --verbose build --ci-image-type IMAGETo build a single image:
# First list the available CI images to know which package belong to which "group":
aswfdocker images
# Then run the build
aswfdocker --verbose build --ci-image-type IMAGE --group vfx1 --version 2026 --target openexr
# Or the simpler but less flexible syntax:
aswfdocker build --ci-image-type aswftesting/ci-openexr:2026For Linux builds on GitHub Actions, in the workflow YAML file it is sufficient to specify:
container: aswf/ci-openexr:2026
or:
container:
image: aswf/ci-openexr:2026
to cause the aswf/ci-openexr:2026 container image to be pulled down from Docker Hub and have the build run within the context of a container created from that image.
ASWF projects will typically use the GitHub Actions matrix strategy to run build against multiple VFX Platform years.
Projects which do not (yet) have dedicated container images can pick one from a project which is "close enough" in terms of dependencies, keeping in mind that ci-openexr only includes the dependencies to build the OpenEXR project, it does not contain a build of OpenEXR itself. When in doubt, the ci-vfxall image includes builds of every currently supported package.
A project's CI may wish to be more specific about the version of the container image it wishes to use, for instance:
container: aswf/ci-openxr:2026.3
pins to a specific release of the VFX Platform 2026 ci-openexr container image, whereas:
container: aswf/ci-openexr:2026
pulls the latest version available. A project can also decide to explicitly specify the SHA-256 signature of a container, in which case the numeric version can be appended as a comment, similarly to how GitHub Actions versions can be pinned to a SHA-256 signature:
container:
image: aswf/ci-openexr@sha256:9ddf6fccd32619a23a02db56aa6761e0b87ffce7374fa103768ded0ae09f1120 # 2026.3
The SHA-256 signature can be found on the Docker Hub tags page for the container image, or with:
$ docker buildx imagetools inspect aswf/ci-openexr:2026.3 --format '{{ json .Manifest }}' | jq -r '.digest'
sha256:9ddf6fccd32619a23a02db56aa6761e0b87ffce7374fa103768ded0ae09f1120
Projects consuming these images should decide on the best policy for them:
- always pull the latest version for a VFX Platform year
- pin to a specific version for a VFX Plaform year
- pin to a specific version using a SHA-256 signature
The aswf-docker release process is fairly lengthy and complex, and in infrequent cases a specific version of a container image may have had to be re-released with the same version tag applied. We aim to minimize these occurances, which would typically occur only within a short window of time after the initial release. Once a container image version has been validated by its consumer project, it can be considered immutable.
The container images include CUDA, OptiX, OpenGL and Vulkan libraries and can be used to run GPU accelerated workloads such as test suites for GPU accelerated code paths.
The host system must have the NVIDIA Container Toolkit installed to allow GPU devices to be mapped into the container and accessible by a binary running inside it. The NVIDIA GPU driver also needs to be installed on the host: the Container Toolkit will map the hardware specific shared libraries into the container at startup time. There is no need to install the GPU driver in the container itself.
Academy Software Foundation projects running their CI in the context of the [https://github.com/AcademySoftwareFoundation/] GitHub organization have access to GPU accelerated hosted runners where the NVIDIA Container Toolkit is already installed.
To run a CUDA workload, it is sufficient to map the GPU device with the --gpus all option:
container:
image: aswf/ci-openexr:2026
options: --gpus all
TheOpen Shading Language optionally uses NVIDIA OptiX for ray tracing acceleration. This requires additional driver capabilities to be mapped into the container at startup time:
[https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/main/.github/workflows/ci.yml]
container:
image: aswf/ci-osl:2026-clang20.3
options: '-e NVIDIA_DRIVER_CAPABILITIES=compute,graphics,utility --gpus all'
The options syntax may seem a bit odd but is what was empirically determined to pass the desired options to allow the required driver capabilities to be exposed and allow the OSL test suite to run its GPU accelerated components.
OpenGL Linux binaries typically require an X11 server to be running, which can be complicated to set up in a CI environment. Instead of using GLX to interface OpenGL with an X11 server, OpenColorIO can optionally use EGL to create an image buffer and render to it without the need for a running X server:
OpenImageIO OpenGL helper core
OpenColorIO runs its GPU CI workloads on AWS Codebuild.
The NVIDIA_DRIVER_CAPABILITIES environment varible needs to be set to enable additional capabilities for OpenGL workloads:
NVIDIA_DRIVER_CAPABILITIES=compute,graphics,utility
In an X11 workstation environment, you can run an OpenGL binary inside a container with:
docker run -it --rm --gpus all -e NVIDIA_DRIVER_CAPABILITIES=all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix aswftesting/ci-common:6 /usr/bin/glxgears
The container images can be used to harvest pre-built binaries:
docker image pull aswf/ci-openexr:2026
docker create --name tmp-openexr aswf/ci-openexr:2026
docker cp tmp-openexr:/usr/local/lib/libImath-3_2.so.30.3.2.2 /tmp/libImath-3_2.so.30.3.2.2
docker rm tmp-openexrA challenge is that when creating the image
aswf/ci-openexr, all the Conan packages which are pre-requisites to build OpenEXR (but not OpenEXR itself) get "flattened" into /usr/local/: this can make it difficult to extract only the binaries for a specific package. The list of files in a specific Conan package can be found in the ASWF Artifactory Repository
In a local clone of the aswf-docker repository follow the instructions in python/README.md to set up a dev environment and activate the venv virtual environment. You should then be able to fetch a pre-build Conan package with:
git clone https://github.com/AcademySoftwareFoundation/aswf-docker
cd aswf-docker
uv sync --all-extras
source .venv/bin/activate
CONAN_HOME=/path_to/aswf-docker/packages/conan/settings conan install -cc core.cache:storage_path=/tmp/conan_home/d --requires=imath/3.2.2@aswf/vfx2026 --profile:all=packages/conan/settings/profiles_aswf/vfx2026 --deployer-folder /tmp --deployer=direct_deployYou will end up with the contents of the imath Conan package in /tmp/direct_deploy/imath/. You can use --deployer=full_deploy to get all of its transitive dependencies installed as well, this time in /tmp/full_deploy/host/:
$ ls /tmp/full_deploy/host
boost bzip2 cpython expat gdbm imath libbacktrace libffi mpdecimal openssl pybind11 sqlite3 tcl tk util-linux-libuuid xz_utils zlib
This will also create a cache of Conan packages in /tmp/conan_home/d/ which you may want to delete.