Docker: Provide HDF5, jpeg-turbo and tiff libraries inside the container
This commit is contained in:
@@ -5,6 +5,9 @@ ARG OPENSSL_VERSION=3.5.4
|
||||
ARG QT_VERSION=6.9.0
|
||||
ARG NODE_MAJOR=22
|
||||
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"
|
||||
|
||||
# Update base and install common utilities
|
||||
RUN dnf -y update && \
|
||||
@@ -22,6 +25,7 @@ RUN dnf -y update && \
|
||||
xz \
|
||||
make \
|
||||
cmake \
|
||||
nasm \
|
||||
gcc-toolset-13 \
|
||||
gcc-toolset-13-gcc \
|
||||
gcc-toolset-13-gcc-c++ \
|
||||
@@ -84,7 +88,6 @@ RUN set -eux; \
|
||||
|
||||
# Expose static OpenSSL to CMake/pkg-config
|
||||
ENV OPENSSL_ROOT_DIR=/opt/openssl-${OPENSSL_VERSION}
|
||||
ENV PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig:${PKG_CONFIG_PATH}
|
||||
|
||||
# Install a recent Node.js (NodeSource). Change NODE_MAJOR if you want another major version.
|
||||
RUN curl -fsSL https://rpm.nodesource.com/setup_${NODE_MAJOR}.x | bash - && \
|
||||
@@ -106,6 +109,65 @@ ENV PATH=${GCC_TOOLSET_ROOT}/usr/bin:${PATH}
|
||||
ENV CC=${GCC_TOOLSET_ROOT}/usr/bin/gcc
|
||||
ENV CXX=${GCC_TOOLSET_ROOT}/usr/bin/g++
|
||||
|
||||
RUN set -eux; \
|
||||
git clone --depth 1 --branch ${LIBJPEG_TURBO_VERSION} https://github.com/libjpeg-turbo/libjpeg-turbo.git /tmp/libjpeg-turbo-src; \
|
||||
mkdir /tmp/libjpeg-turbo-src/build; \
|
||||
cd /tmp/libjpeg-turbo-src/build; \
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DENABLE_SHARED=FALSE \
|
||||
-DENABLE_STATIC=TRUE \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/libjpeg-turbo-${LIBJPEG_TURBO_VERSION}-static ..; \
|
||||
cmake --build . -j"$(nproc)"; \
|
||||
cmake --install .; \
|
||||
rm -rf /tmp/libjpeg-turbo-src
|
||||
|
||||
RUN set -eux; \
|
||||
git clone --depth 1 --branch ${LIBTIFF_VERSION} https://gitlab.com/libtiff/libtiff.git /tmp/libtiff-src; \
|
||||
mkdir /tmp/libtiff-src/build.cm; \
|
||||
cd /tmp/libtiff-src/build.cm; \
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-Dtools=OFF \
|
||||
-Dtests=OFF \
|
||||
-Ddocs=OFF \
|
||||
-Dlzma=OFF \
|
||||
-Djbig=OFF \
|
||||
-Dwebp=OFF \
|
||||
-Djpeg=OFF \
|
||||
-Dold-jpeg=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/libtiff-${LIBTIFF_VERSION}-static \
|
||||
..; \
|
||||
cmake --build . -j"$(nproc)"; \
|
||||
cmake --install .; \
|
||||
rm -rf /tmp/libtiff-src
|
||||
|
||||
RUN set -eux; \
|
||||
git clone --depth 1 --branch ${HDF5_TAG} https://github.com/HDFGroup/hdf5 /tmp/hdf5-src; \
|
||||
cd /tmp/hdf5-src; \
|
||||
mkdir build && cd build; \
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DHDF5_BUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DHDF5_BUILD_TOOLS=OFF \
|
||||
-DHDF5_BUILD_EXAMPLES=OFF \
|
||||
-DHDF5_ENABLE_SZIP_SUPPORT=OFF \
|
||||
-DHDF5_ENABLE_SZIP_ENCODING=OFF \
|
||||
-DHDF5_BUILD_CPP_LIB=OFF \
|
||||
-DHDF5_ENABLE_Z_LIB_SUPPORT=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/hdf5-${HDF5_TAG}-static ..; \
|
||||
cmake --build . -j"$(nproc)"; \
|
||||
cmake --install .; \
|
||||
rm -rf /tmp/hdf5-src
|
||||
|
||||
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_TAG}-static/lib/pkgconfig:/opt/libtiff-${LIBTIFF_TAG}-static/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig
|
||||
|
||||
ARG QT_PREFIX=/opt/qt-${QT_VERSION}-static
|
||||
RUN set -eux; \
|
||||
cd /tmp; \
|
||||
@@ -138,7 +200,7 @@ RUN set -eux; \
|
||||
cmake --install .; \
|
||||
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
|
||||
|
||||
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static:/opt/eigen
|
||||
ENV CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}:/opt/hdf5-${HDF5_TAG}-static:opt/qt-${QT_VERSION}-static:/opt/eigen
|
||||
|
||||
# Set workdir for your project
|
||||
WORKDIR /workspace
|
||||
|
||||
@@ -5,6 +5,9 @@ ARG OPENSSL_VERSION=3.5.4
|
||||
ARG QT_VERSION=6.9.0
|
||||
ARG NODE_MAJOR=22
|
||||
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"
|
||||
|
||||
# Update base, enable CRB (RHEL/Rocky 9), and install toolchain + Qt deps
|
||||
RUN dnf -y update && \
|
||||
@@ -33,6 +36,7 @@ RUN dnf -y update && \
|
||||
ninja-build \
|
||||
python3 \
|
||||
perl \
|
||||
nasm \
|
||||
pkgconf-pkg-config \
|
||||
libxcb-devel \
|
||||
xcb-util-*-devel \
|
||||
@@ -87,6 +91,65 @@ RUN curl -fsSL https://rpm.nodesource.com/setup_${NODE_MAJOR}.x | bash - && \
|
||||
dnf clean all && rm -rf /var/cache/dnf && \
|
||||
node --version && npm --version && (corepack enable || true)
|
||||
|
||||
RUN set -eux; \
|
||||
git clone --depth 1 --branch ${LIBJPEG_TURBO_VERSION} https://github.com/libjpeg-turbo/libjpeg-turbo.git /tmp/libjpeg-turbo-src; \
|
||||
mkdir /tmp/libjpeg-turbo-src/build; \
|
||||
cd /tmp/libjpeg-turbo-src/build; \
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DENABLE_SHARED=FALSE \
|
||||
-DENABLE_STATIC=TRUE \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/libjpeg-turbo-${LIBJPEG_TURBO_VERSION}-static ..; \
|
||||
cmake --build . -j"$(nproc)"; \
|
||||
cmake --install .; \
|
||||
rm -rf /tmp/libjpeg-turbo-src
|
||||
|
||||
RUN set -eux; \
|
||||
git clone --depth 1 --branch ${LIBTIFF_VERSION} https://gitlab.com/libtiff/libtiff.git /tmp/libtiff-src; \
|
||||
mkdir /tmp/libtiff-src/build.cm; \
|
||||
cd /tmp/libtiff-src/build.cm; \
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-Dtools=OFF \
|
||||
-Dtests=OFF \
|
||||
-Ddocs=OFF \
|
||||
-Dlzma=OFF \
|
||||
-Djbig=OFF \
|
||||
-Dwebp=OFF \
|
||||
-Djpeg=OFF \
|
||||
-Dold-jpeg=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/libtiff-${LIBTIFF_VERSION}-static \
|
||||
..; \
|
||||
cmake --build . -j"$(nproc)"; \
|
||||
cmake --install .; \
|
||||
rm -rf /tmp/libtiff-src
|
||||
|
||||
RUN set -eux; \
|
||||
git clone --depth 1 --branch ${HDF5_TAG} https://github.com/HDFGroup/hdf5 /tmp/hdf5-src; \
|
||||
cd /tmp/hdf5-src; \
|
||||
mkdir build && cd build; \
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DHDF5_BUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DHDF5_BUILD_TOOLS=OFF \
|
||||
-DHDF5_BUILD_EXAMPLES=OFF \
|
||||
-DHDF5_ENABLE_SZIP_SUPPORT=OFF \
|
||||
-DHDF5_ENABLE_SZIP_ENCODING=OFF \
|
||||
-DHDF5_BUILD_CPP_LIB=OFF \
|
||||
-DHDF5_ENABLE_Z_LIB_SUPPORT=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/hdf5-${HDF5_TAG}-static ..; \
|
||||
cmake --build . -j"$(nproc)"; \
|
||||
cmake --install .; \
|
||||
rm -rf /tmp/hdf5-src
|
||||
|
||||
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_TAG}-static/lib/pkgconfig:/opt/libtiff-${LIBTIFF_TAG}-static/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig
|
||||
|
||||
# Make GCC/G++ 13 the default for builds
|
||||
ENV GCC_TOOLSET_ROOT=/opt/rh/gcc-toolset-13/root
|
||||
ENV PATH=${GCC_TOOLSET_ROOT}/usr/bin:${PATH}
|
||||
@@ -127,7 +190,7 @@ RUN set -eux; \
|
||||
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
|
||||
|
||||
# Make Qt and Eigen discoverable by CMake
|
||||
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static
|
||||
ENV CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}:/opt/hdf5-${HDF5_TAG}-static:/opt/qt-${QT_VERSION}-static
|
||||
|
||||
# Set workdir for your project
|
||||
WORKDIR /workspace
|
||||
|
||||
@@ -8,6 +8,9 @@ ARG OPENSSL_VERSION=3.5.4
|
||||
ARG QT_VERSION=6.10.0
|
||||
ARG NODE_MAJOR=22
|
||||
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"
|
||||
|
||||
# Update base and install toolchain + Qt dependencies
|
||||
# Notes:
|
||||
@@ -31,6 +34,7 @@ RUN set -eux; \
|
||||
pkg-config \
|
||||
gdb \
|
||||
file \
|
||||
nasm \
|
||||
dpkg-dev \
|
||||
fakeroot \
|
||||
libnuma-dev \
|
||||
@@ -104,6 +108,66 @@ RUN set -eux; \
|
||||
rm -rf /var/lib/apt/lists/*; \
|
||||
node --version; npm --version; (corepack enable || true)
|
||||
|
||||
RUN set -eux; \
|
||||
git clone --depth 1 --branch ${LIBJPEG_TURBO_VERSION} https://github.com/libjpeg-turbo/libjpeg-turbo.git /tmp/libjpeg-turbo-src; \
|
||||
mkdir /tmp/libjpeg-turbo-src/build; \
|
||||
cd /tmp/libjpeg-turbo-src/build; \
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DENABLE_SHARED=FALSE \
|
||||
-DENABLE_STATIC=TRUE \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/libjpeg-turbo-${LIBJPEG_TURBO_VERSION}-static ..; \
|
||||
cmake --build . -j"$(nproc)"; \
|
||||
cmake --install .; \
|
||||
rm -rf /tmp/libjpeg-turbo-src
|
||||
|
||||
RUN set -eux; \
|
||||
git clone --depth 1 --branch ${LIBTIFF_VERSION} https://gitlab.com/libtiff/libtiff.git /tmp/libtiff-src; \
|
||||
mkdir /tmp/libtiff-src/build.cm; \
|
||||
cd /tmp/libtiff-src/build.cm; \
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-Dtools=OFF \
|
||||
-Dtests=OFF \
|
||||
-Ddocs=OFF \
|
||||
-Dlzma=OFF \
|
||||
-Djbig=OFF \
|
||||
-Dwebp=OFF \
|
||||
-Djpeg=OFF \
|
||||
-Dold-jpeg=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/libtiff-${LIBTIFF_VERSION}-static \
|
||||
..; \
|
||||
cmake --build . -j"$(nproc)"; \
|
||||
cmake --install .; \
|
||||
rm -rf /tmp/libtiff-src
|
||||
|
||||
RUN set -eux; \
|
||||
git clone --depth 1 --branch ${HDF5_TAG} https://github.com/HDFGroup/hdf5 /tmp/hdf5-src; \
|
||||
cd /tmp/hdf5-src; \
|
||||
mkdir build && cd build; \
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DHDF5_BUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DHDF5_BUILD_TOOLS=OFF \
|
||||
-DHDF5_BUILD_EXAMPLES=OFF \
|
||||
-DHDF5_ENABLE_SZIP_SUPPORT=OFF \
|
||||
-DHDF5_ENABLE_SZIP_ENCODING=OFF \
|
||||
-DHDF5_BUILD_CPP_LIB=OFF \
|
||||
-DHDF5_ENABLE_Z_LIB_SUPPORT=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/hdf5-${HDF5_TAG}-static ..; \
|
||||
cmake --build . -j"$(nproc)"; \
|
||||
cmake --install .; \
|
||||
rm -rf /tmp/hdf5-src
|
||||
|
||||
|
||||
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_TAG}-static/lib/pkgconfig:/opt/libtiff-${LIBTIFF_TAG}-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
|
||||
@@ -143,7 +207,7 @@ RUN set -eux; \
|
||||
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
|
||||
|
||||
# Make Qt and Eigen discoverable by CMake
|
||||
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static
|
||||
ENV CMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}:/opt/hdf5-${HDF5_TAG}-static:/opt/qt-${QT_VERSION}-static
|
||||
|
||||
# Set workdir for your project
|
||||
WORKDIR /workspace
|
||||
|
||||
@@ -5,9 +5,9 @@ LABEL authors="leonarski_f"
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
ARG OPENSSL_VERSION=3.5.4
|
||||
ARG QT_VERSION=6.9.0
|
||||
ARG NODE_MAJOR=22
|
||||
ARG EIGEN_TAG=3.4.0
|
||||
ARG HDF5_TAG="hdf5_1.14.6"
|
||||
|
||||
# Update base and install toolchain + Qt dependencies
|
||||
RUN set -eux; \
|
||||
@@ -60,6 +60,8 @@ RUN set -eux; \
|
||||
libgl1-mesa-dev \
|
||||
libegl1-mesa-dev \
|
||||
libdbus-1-dev \
|
||||
libtiff-dev \
|
||||
libjpeg-turbo8-dev \
|
||||
zlib1g-dev \
|
||||
libglib2.0-dev \
|
||||
libfontconfig1-dev \
|
||||
@@ -87,10 +89,6 @@ RUN set -eux; \
|
||||
make install_sw; \
|
||||
cd /; rm -rf /tmp/openssl-${OPENSSL_VERSION} /tmp/openssl-${OPENSSL_VERSION}.tar.gz
|
||||
|
||||
# Expose static OpenSSL to CMake/pkg-config
|
||||
ENV OPENSSL_ROOT_DIR=/opt/openssl-${OPENSSL_VERSION}
|
||||
ENV PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig:${PKG_CONFIG_PATH}
|
||||
|
||||
# Install Node.js 22 (NodeSource)
|
||||
RUN set -eux; \
|
||||
curl -fsSL https://deb.nodesource.com/setup_${NODE_MAJOR}.x | bash -; \
|
||||
@@ -100,6 +98,30 @@ RUN set -eux; \
|
||||
rm -rf /var/lib/apt/lists/*; \
|
||||
node --version; npm --version; (corepack enable || true)
|
||||
|
||||
RUN set -eux; \
|
||||
git clone --depth 1 --branch ${HDF5_TAG} https://github.com/HDFGroup/hdf5 /tmp/hdf5-src; \
|
||||
cd /tmp/hdf5-src; \
|
||||
mkdir build && cd build; \
|
||||
cmake -G Ninja \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DHDF5_BUILD_SHARED_LIBS=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DHDF5_BUILD_TOOLS=OFF \
|
||||
-DHDF5_BUILD_EXAMPLES=OFF \
|
||||
-DHDF5_ENABLE_SZIP_SUPPORT=OFF \
|
||||
-DHDF5_ENABLE_SZIP_ENCODING=OFF \
|
||||
-DHDF5_BUILD_CPP_LIB=OFF \
|
||||
-DHDF5_ENABLE_Z_LIB_SUPPORT=OFF \
|
||||
-DCMAKE_INSTALL_PREFIX=/opt/hdf5-${HDF5_TAG}-static ..; \
|
||||
cmake --build . -j"$(nproc)"; \
|
||||
cmake --install .; \
|
||||
rm -rf /tmp/hdf5-src
|
||||
|
||||
# Expose static OpenSSL to CMake/pkg-config
|
||||
ENV OPENSSL_ROOT_DIR=/opt/openssl-${OPENSSL_VERSION}
|
||||
ENV PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig:/opt/hdf5-${HDF5_TAG}-static
|
||||
|
||||
# Set workdir for your project
|
||||
WORKDIR /workspace
|
||||
|
||||
|
||||
Reference in New Issue
Block a user