Files
oak-editor/docker
Simran cc317a8b1a Docker: Update build image with final OCIOv2, Qt 5.15.2, OTIO, Crashpad (#1489)
* Add missing xcb-util-* packages. Qt's libqxcb.so seems to require them in the newer Qt version

* Adjust breakpad install prefix to match CMake change

* Add build script for Olive for quick testing

* .n in CI image actually stands for image revision

* skipping the CI is now supported natively by GitHub Actions
2021-03-25 03:59:42 +01:00
..

Docker Images

Olive uses Docker containers for continuous integration on Linux. No Docker images are involved for the Windows and macOS CI.

Overview

ci-common is the shared build image with GCC, Clang and packages that are needed by most dependent images. It is used to compile Olive's dependencies in a controlled environment. The final CI image ci-olive is assembled from images maintained by the Olive team as well as from aswf-docker.

Dependency hierarchy:

  1. ci-common
  2. ci-otio, ci-crashpad, ci-ffmpeg, ci-ocio
  3. ci-olive

Usage

Pull images from Docker Hub:

docker pull olivevideoeditor/ci-common:2
docker pull olivevideoeditor/ci-package-otio
docker pull olivevideoeditor/ci-package-crashpad
docker pull olivevideoeditor/ci-package-ffmpeg:4.2.4
docker pull olivevideoeditor/ci-package-ocio:2021-2.0.0
docker pull olivevideoeditor/ci-olive:2021.3

Use ci-olive image as local build container, by mounting working copy at ~/olive into guest system at /opt/olive/olive:

docker run --rm -it -v ~/olive:/opt/olive/olive olivevideoeditor/ci-olive:2021.3
mkdir build
cd build
cmake .. -G Ninja
cmake --build .

Rebuild all images locally:

cd docker
docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile .
docker build -t olivevideoeditor/ci-package-otio -f ci-otio/Dockerfile .
docker build -t olivevideoeditor/ci-package-crashpad -f ci-crashpad/Dockerfile .
docker build -t olivevideoeditor/ci-package-ffmpeg:4.2.4 -f ci-ffmpeg/Dockerfile .
docker build -t olivevideoeditor/ci-package-ocio:2021-2.0.0 -f ci-ocio/Dockerfile .
docker build -t olivevideoeditor/ci-olive:2021.3 -f ci-olive/Dockerfile .

Note that 2021 in ci-olive:2021.3 stands for the VFX Reference Platform calendar year and 3 for the build image revision (should be incremented each time a new image is published).

Publish images:

docker push olivevideoeditor/ci-common:2
docker push olivevideoeditor/ci-package-otio
docker push olivevideoeditor/ci-package-crashpad
docker push olivevideoeditor/ci-package-ffmpeg:4.2.4
docker push olivevideoeditor/ci-package-ocio:2021-2.0.0
docker push olivevideoeditor/ci-olive:2021.3