Code Monkey home page Code Monkey logo

aswf-docker's Introduction

Docker Images for the Academy Software Foundation

License Code style: black
Coverage Maintainability Rating
Test Build Docker Images Test Python aswfdocker Library

More information:

Changes are documented in CHANGELOG.md

CI Images

These images are for Continuous Integration testing of various project managed by the ASWF. Each image (apart from ci-common) is available for multiple VFX Platform Years.

Image Stats Description
aswf/ci-common:1 Image Version Image Size Pulls A base CentOS-7 image with devtoolset-6 (GCC-6.3.1), clang-6-10 and cuda-10.2.
aswf/ci-common:2 Image Version Image Size Pulls A base CentOS-7 image with devtoolset-9.1 (GCC-9.3.1), clang-10-14 and cuda-11.4.
aswf/ci-common:3 Image Version Image Size Pulls A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-14-15 and cuda-11.8.
aswf/ci-common:4 Image Version Image Size Pulls A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-16-17 and cuda-12.3.
aswf/ci-base:2018 Image Version Image Size Pulls Based on aswf/ci-common:1 with most VFX Platform requirements pre-installed.
aswf/ci-base:2021 Image Version Image Size Pulls Based on aswf/ci-common:2 with most VFX Platform requirements pre-installed.
aswf/ci-base:2022 Image Version Image Size Pulls Based on aswf/ci-common:2 with most VFX Platform requirements pre-installed.
aswf/ci-base:2023 Image Version Image Size Pulls Based on aswf/ci-common:3 with most VFX Platform requirements pre-installed.
aswf/ci-base:2024 Image Version Image Size Pulls Based on aswf/ci-common:4 with most VFX Platform requirements pre-installed.
aswf/ci-openexr:2018 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenEXR upstream dependencies pre-installed.
aswf/ci-openexr:2019 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenEXR upstream dependencies pre-installed.
aswf/ci-openexr:2020 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenEXR upstream dependencies pre-installed.
aswf/ci-openexr:2021 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all OpenEXR upstream dependencies pre-installed.
aswf/ci-openexr:2022 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all OpenEXR upstream dependencies pre-installed.
aswf/ci-openexr:2023 Image Version Image Size Pulls Based on aswf/ci-common:3, comes with all OpenEXR upstream dependencies pre-installed.
aswf/ci-openexr:2024 Image Version Image Size Pulls Based on aswf/ci-common:4, comes with all OpenEXR upstream dependencies pre-installed.
aswf/ci-ocio:2018 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenColorIO upstream dependencies pre-installed.
aswf/ci-ocio:2019 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenColorIO upstream dependencies pre-installed.
aswf/ci-ocio:2020 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenColorIO upstream dependencies pre-installed.
aswf/ci-ocio:2021 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all OpenColorIO upstream dependencies pre-installed.
aswf/ci-ocio:2022 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all OpenColorIO upstream dependencies pre-installed.
aswf/ci-ocio:2023 Image Version Image Size Pulls Based on aswf/ci-common:3, comes with all OpenColorIO upstream dependencies pre-installed.
aswf/ci-ocio:2024 Image Version Image Size Pulls Based on aswf/ci-common:4, comes with all OpenColorIO upstream dependencies pre-installed.
aswf/ci-opencue:2018 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenCue upstream dependencies pre-installed.
aswf/ci-opencue:2019 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenCue upstream dependencies pre-installed.
aswf/ci-opencue:2020 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenCue upstream dependencies pre-installed.
aswf/ci-opencue:2021 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all OpenCue upstream dependencies pre-installed.
aswf/ci-opencue:2022 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all OpenCue upstream dependencies pre-installed.
aswf/ci-opencue:2023 Image Version Image Size Pulls Based on aswf/ci-common:3, comes with all OpenCue upstream dependencies pre-installed.
aswf/ci-opencue:2024 Image Version Image Size Pulls Based on aswf/ci-common:4, comes with all OpenCue upstream dependencies pre-installed.
aswf/ci-openvdb:2018 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenVDB upstream dependencies pre-installed.
aswf/ci-openvdb:2019 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenVDB upstream dependencies pre-installed.
aswf/ci-openvdb:2020 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenVDB upstream dependencies pre-installed.
aswf/ci-openvdb:2021 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all OpenVDB upstream dependencies pre-installed.
aswf/ci-openvdb:2022 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all OpenVDB upstream dependencies pre-installed.
aswf/ci-openvdb:2023 Image Version Image Size Pulls Based on aswf/ci-common:3, comes with all OpenVDB upstream dependencies pre-installed.
aswf/ci-openvdb:2024 Image Version Image Size Pulls Based on aswf/ci-common:4, comes with all OpenVDB upstream dependencies pre-installed.
aswf/ci-usd:2019 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all USD upstream dependencies pre-installed.
aswf/ci-usd:2020 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all USD upstream dependencies pre-installed.
aswf/ci-usd:2021 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all USD upstream dependencies pre-installed.
aswf/ci-usd:2022 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all USD upstream dependencies pre-installed.
aswf/ci-usd:2023 Image Version Image Size Pulls Based on aswf/ci-common:3, comes with all USD upstream dependencies pre-installed.
aswf/ci-usd:2024 Image Version Image Size Pulls Based on aswf/ci-common:4, comes with all USD upstream dependencies pre-installed.
aswf/ci-osl:2018 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenShadingLanguage upstream dependencies pre-installed.
aswf/ci-osl:2019 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenShadingLanguage upstream dependencies pre-installed.
aswf/ci-osl:2020 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with all OpenShadingLanguage upstream dependencies pre-installed.
aswf/ci-osl:2021 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all OpenShadingLanguage upstream dependencies pre-installed.
aswf/ci-osl:2022 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with all OpenShadingLanguage upstream dependencies pre-installed.
aswf/ci-osl:2023 Image Version Image Size Pulls Based on aswf/ci-common:3, comes with all OpenShadingLanguage upstream dependencies pre-installed.
aswf/ci-osl:2024 Image Version Image Size Pulls Based on aswf/ci-common:4, comes with all OpenShadingLanguage upstream dependencies pre-installed.
aswf/ci-vfxall:2019 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with most VFX packages pre-installed.
aswf/ci-vfxall:2020 Image Version Image Size Pulls Based on aswf/ci-common:1, comes with most VFX packages pre-installed.
aswf/ci-vfxall:2021 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with most VFX packages pre-installed.
aswf/ci-vfxall:2022 Image Version Image Size Pulls Based on aswf/ci-common:2, comes with most VFX packages pre-installed.
aswf/ci-vfxall:2023 Image Version Image Size Pulls Based on aswf/ci-common:3, comes with most VFX packages pre-installed.
aswf/ci-vfxall:2024 Image Version Image Size Pulls Based on aswf/ci-common:4, comes with most VFX packages pre-installed.

Versions

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.

Image Tags

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.

Testing Images

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 Jira issue there.

Status

As of November 2021 there are full 2018, 2019, 2020, 2021 and 2022 VFX Platform compliant images. N.B. that the 2018 version of the images still exist but are not maintained/rebuilt anymore, which means they might be obsolete (especially the OS part).

CI Packages

In order to decouple the building of packages (which can take a lot of time, such as clang, Qt and USD) from the management of the CI Images, the packages are built and stored into "scratch" Docker images that can be "copied" into the CI images at image build time by Docker.

Storing these CI packages into Docker images has the additional benefit of being completely free to store on the Docker Hub repository. The main negative point about this way of storing build artifacts is that tarballs are not available directly to download. It is very trivial to generate one and the provided download-package.sh script can be used to generate a local tarball from any package.

Also, CI packages are built using experimental Docker syntax that allows cache folders to be mounted at build time, and is built with docker buildx. The new Docker BuildKit system allows the building of many packages in parallel in an efficient way with support for ccache.

Python Utilities

Check aswfdocker for python utility usage.

Manual Builds

To build packages and images locally follow the instructions to install the aswfdocker python utility.

Packages

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 PACKAGE

To build a single package, e.g. USD:

# First list the available CI packages to know which package belong to which "group":
aswfdocker packages
# Then run the build
aswfdocker --verbose build -t PACKAGE --group vfx --version 2019 --target usd
# Or the simpler but less flexible syntax:
aswfdocker build -n aswftesting/ci-package-usd:2019

Images

Images 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 -t IMAGE

To 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 -t IMAGE --group vfx1 --version 2019 --target openexr
# Or the simpler but less flexible syntax:
aswfdocker build -n aswftesting/ci-openexr:2019

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.