diff --git a/docker/rocky9/Dockerfile b/docker/rocky9/Dockerfile index f8f610a9..4df8434f 100644 --- a/docker/rocky9/Dockerfile +++ b/docker/rocky9/Dockerfile @@ -8,6 +8,9 @@ ARG EIGEN_TAG=3.4.0 ARG LIBJPEG_TURBO_VERSION=3.1.2 ARG LIBTIFF_VERSION=v4.7.1 ARG HDF5_TAG="hdf5_1.14.6" +ARG DIALS_VERSION=3.27.0 +ARG DIALS_TARBALL_URL=https://github.com/dials/dials/releases/download/v3.27.0/dials-v3-27-0-linux-x86_64.tar.xz +ARG DIALS_PREFIX=/opt # Update base, enable CRB (RHEL/Rocky 9), and install toolchain + Qt deps RUN dnf -y update && \ @@ -185,6 +188,16 @@ RUN set -eux; \ cmake --install .; \ cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz +# Install DIALS using the official binary tarball workflow +RUN set -eux; \ + cd /tmp; \ + curl -fL -o dials.tar.xz "${DIALS_TARBALL_URL}"; \ + tar -xJf dials.tar.xz; \ + cd dials-installer; \ + ./install --prefix="${DIALS_PREFIX}"; \ + cd /; \ + rm -rf /tmp/dials.tar.xz /tmp/dials-*-linux-x86_64 + # Make Qt and Eigen discoverable by CMake ENV CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}:/opt/hdf5-${HDF5_TAG}-static:/opt/qt-${QT_VERSION}-static diff --git a/docker/ubuntu2204/Dockerfile b/docker/ubuntu2204/Dockerfile index f1625475..e357dfba 100644 --- a/docker/ubuntu2204/Dockerfile +++ b/docker/ubuntu2204/Dockerfile @@ -22,11 +22,11 @@ RUN set -eux; \ ca-certificates \ curl \ wget \ + gpg \ git \ tar \ xz-utils \ build-essential \ - cmake \ ninja-build \ python3 \ python3-requests \ @@ -78,10 +78,25 @@ RUN set -eux; \ libassimp-dev \ libglvnd-dev \ libfreetype6-dev; \ + wget -qO- https://apt.kitware.com/keys/kitware-archive-latest.asc \ + | gpg --dearmor \ + | tee /usr/share/keyrings/kitware-archive-keyring.gpg > /dev/null; \ + echo "deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main" \ + | tee /etc/apt/sources.list.d/kitware.list > /dev/null; \ + apt-get update; \ + apt-get install -y --no-install-recommends \ + cmake=3.26.* \ + cmake-data=3.26.* \ + kitware-archive-keyring; \ apt-get -y install gcc-12 g++-12; \ apt-get clean; \ rm -rf /var/lib/apt/lists/* +# Use GCC/G++ 12 for builds +ENV CC=/usr/bin/gcc-12 +ENV CXX=/usr/bin/g++-12 +ENV PATH=/usr/bin:${PATH} + # Build a static OpenSSL RUN set -eux; \ cd /tmp; \ @@ -166,11 +181,6 @@ RUN set -eux; \ ENV CMAKE_PREFIX_PATH=/opt/libtiff-${LIBTIFF_VERSION}-static:/opt/libjpeg-turbo-${LIBJPEG_TURBO_VERSION}-static ENV PKG_CONFIG_PATH=/opt/hdf5-${HDF5_TAG}-static/lib/pkgconfig:/opt/libjpeg-turbo-${LIBJPEG_TURBO_VERSION}-static/lib/pkgconfig:/opt/libtiff-${LIBTIFF_VERSION}-static/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig -# Use GCC/G++ 12 for builds -ENV CC=/usr/bin/gcc-12 -ENV CXX=/usr/bin/g++-12 -ENV PATH=/usr/bin:${PATH} - # Build and install static Qt 6.9 with Core, Gui, Widgets, Charts, DBus ARG QT_PREFIX=/opt/qt-${QT_VERSION}-static RUN set -eux; \