As of ParaView v5.10.0, this project is deprecated in favor of the Kitware-supported docker images kitware/paraview_org-plugin-devel.
Building ParaView plugins, that are compatible with the ParaView binary distribution, currently requires to reproduce the ParaView superbuild. This docker image contains ParaView superbuild binaries as well as their development headers, which allows external plugins to be built. Any plugin built in this environment can be distributed and used within the ParaView binary distribution.
Three variants for each version are provided: Qt5 GUI (no suffix), off-screen software rendering (OSMesa, suffix -osmesa) and hardware off-screen rendering (EGL, suffix -egl). The EGL variant requires libglvnd.
This docker images are partially based on the Dockerfiles found on the ParaView mailing list and in the ParaView superbuild repository. The CMake configuration is taken from the ParaView CDash, and ParaView superbuild Gitlab CI.
docker running in a Linux (or compatible) environment is required. All instructions assume, that your user is a member of the docker
group.
Prebuilt docker images can be found on Docker Hub. If you want to build your own docker images, see the instructions below (building takes about three hours on a desktop machine).
Full working examples can be found in examples/, which are run by Github Actions.
The images have preset PATH
, Qt5_DIR
and CMAKE_PREFIX_PATH
environment variables. In order to select gcc from the SCL, commands that run CMake need to be executed using scl enable devtoolset-8
(version 5.7.0 uses devltoolset-6
and version 5.6.0 uses devtoolset-4
; you may also install your own toolset, see below).
Start a detached container with name build
and directory ./shared/
mounted to /mnt/shared
:
docker run -itd \
--name build \
--user "$(id -u ${USER}):$(id -g ${USER})" \
--volume="$(pwd)/shared:/mnt/shared:ro" \
lhofmann/paraview-superbuild:5.10.0
Run CMake and build in /tmp/build
:
docker exec build /usr/bin/scl enable devtoolset-8 -- cmake -B/tmp/build -H/mnt/shared/example
docker exec build cmake --build /tmp/build
The build artifacts are now in /tmp/build
within the docker container. You may copy the required files to the host:
docker cp build:/tmp/build/libExamplePlugin.so .
The docker images run as non-root user paraview
. If you need additional dependencies for your builds, create a derived docker image:
ARG paraview_version="5.10.0"
FROM lhofmann/paraview-superbuild:${paraview_version}
USER root
# install additional dependencies
# e.g.:
# RUN yum install -y ...
USER paraview
This is a multi-stage Dockerfile with four stages: base
, builder
, default
and package
.
base
contains the dependencies required for building the ParaView superbuild, including recent versions of cmake and the Qt5 binary distribution.builder
contains the fully built ParaView superbuild in/home/paraview/build
, including all build artifacts.default
contains thebase
image and the directory/home/paraview/build/install
, which contains the ParaView superbuild binaries.package
contains thedefault
image and package-ready ParaView binaries in/home/paraview/package
. These binaries can be distributed and approximately resemble those found in the ParaView binary distribution.
The docker images lhofmann/paraview-superbuild contain the default
stage. To replicate these images, run
git clone https://github.com/lhofmann/paraview-superbuild-docker.git
./paraview-superbuild-docker/build.sh [osmesa|egl]
The script will create docker images with tag $USER/paraview-superbuild:5.10.0
for the default
stage and $USER/paraview-superbuild:5.10.0-base
, $USER/paraview-superbuild:5.10.0-builder
, $USER/paraview-superbuild:5.10.0-package
for the other stages.
- updated to CMake 3.21.2
- CMake parameters are now based on Kitware's Gitlab CI config: configure_common.cmake, configure_linux_osmesa_shared.cmake, configure_linux_egl.cmake
- updated to Qt 5.12.9, CMake 3.18.6
- ParaView EGL binaries now available from Kitware
- switched to
devtoolset-8
(gcc 8) - Qt 5.10.1 is now built using https://gitlab.kitware.com/paraview/paraview-plugin-builder/-/blob/master/docker/install_qt.sh
- fixes incompatibility of plugins that rely on Qt libraries
- cleaned up CMake configuration according to https://gitlab.kitware.com/paraview/paraview-plugin-builder
build.sh
also creates a binary .tar.gz package
- changed build path to
/home/paraview/buildbuildbuildbuildbuildbuildbuildbuildbuildbuildbuildbuildbuildbuild
as workaround for issue #123 - additionally define
TBB_ROOT
(fixes CMake sometimes failing) - updated extract-qt-installer to revision 2fa3063 of github.com/benlau/qtci
- removed symlink to ospray include directory, as it is no longer needed
- add symlink at
build/install/include/paraview-5.6/ospray
tobuild/install/include/ospray
- use
devtoolset-6
(gcc 6) instead ofdevtoolset-4
- update to Qt 5.12.1
- update to CMake 3.13.4
ParaView Release | Docker Image |
---|---|
ParaView-5.7.0-RC2-MPI-Linux-Python3.7-64bit | lhofmann/paraview-superbuild:5.7.0-RC2 |
ParaView-5.7.0-RC2-osmesa-MPI-Linux-Python3.7-64bit | lhofmann/paraview-superbuild:5.7.0-RC2-osmesa |
ParaView-5.7.0-RC2-egl-MPI-Linux-Python3.7-64bit | lhofmann/paraview-superbuild:5.7.0-RC2-egl |
ParaView-5.7.0-RC1-MPI-Linux-64bit | lhofmann/paraview-superbuild:5.7.0-RC1 |
ParaView-5.7.0-RC1-osmesa-MPI-Linux-64bit | lhofmann/paraview-superbuild:5.7.0-RC1-osmesa |
ParaView-5.7.0-RC1-egl-MPI-Linux-64bit | lhofmann/paraview-superbuild:5.7.0-RC1-egl |
ParaView-5.6.0-295-g74fd1a6d5a-MPI-Linux-64bit | lhofmann/paraview-superbuild:5.6.0-295-g74fd1a6d5a |
ParaView-5.6.0-295-g74fd1a6d5a-osmesa-MPI-Linux-64bit | lhofmann/paraview-superbuild:5.6.0-295-g74fd1a6d5a-osmesa |
ParaView-5.6.0-295-g74fd1a6d5a-egl-MPI-Linux-64bit | lhofmann/paraview-superbuild:5.6.0-295-g74fd1a6d5a-egl |
ParaView-5.6.0-MPI-Linux-64bit | lhofmann/paraview-superbuild:5.6.0 |
ParaView-5.6.0-osmesa-MPI-Linux-64bit | lhofmann/paraview-superbuild:5.6.0-osmesa |
ParaView-5.6.0-egl-MPI-Linux-64bit | lhofmann/paraview-superbuild:5.6.0-egl |