debian (root6-eigen5)

Published 2026-09-15 19:18:43 +02:00 by jourintown

Installation

docker pull git.jourin.town/jourintown/debian:root6-eigen5
sha256:ecc80358d484a571dbf3a0d42c72e8c3cc9e2ad90b113128b68393b023c1e002

Image Layers

# debian.sh --arch 'amd64' out/ 'trixie' '@1787529600'
RUN /bin/sh -c groupadd --gid 1000 node && useradd --uid 1000 --gid node --shell /bin/bash --create-home node # buildkit
ENV NODE_VERSION=24.21.0
RUN /bin/sh -c ARCH= OPENSSL_ARCH= && dpkgArch="$(dpkg --print-architecture)" && case "${dpkgArch##*-}" in amd64) ARCH='x64' OPENSSL_ARCH='linux-x86_64';; ppc64el) ARCH='ppc64le' OPENSSL_ARCH='linux-ppc64le';; s390x) ARCH='s390x' OPENSSL_ARCH='linux*-s390x';; arm64) ARCH='arm64' OPENSSL_ARCH='linux-aarch64';; *) echo "unsupported architecture"; exit 1 ;; esac && set -ex && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr xz-utils libatomic1 --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 5BE8A3F6C8A5C01D106C0AD820B1A390B168D356 DD792F5973C6DE52C432CBDAC77ABFA00DDBF2B7 CC68F5A3106FF448322E48ED27F5E38D5B0A215F 890C08DB8579162FEE0DF9DB8BEAB4DFCF555EF4 C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C 108F52B48DB57BB0CC439B2997B01419BD92F80A 655F3B5C1FB3FA8D1A0CA6BDE4A7D232B936D2FD A363A499291CBBC940DD62E41F10027AF002F8B0 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-$ARCH.tar.xz" && curl -fsSLO --compressed "https://nodejs.org/dist/v$NODE_VERSION/SHASUMS256.txt.asc" && gpg --batch --decrypt --output SHASUMS256.txt SHASUMS256.txt.asc && gpgconf --kill all && rm -rf "$GNUPGHOME" && grep " node-v$NODE_VERSION-linux-$ARCH.tar.xz\$" SHASUMS256.txt | sha256sum -c - && tar -xJf "node-v$NODE_VERSION-linux-$ARCH.tar.xz" -C /usr/local --strip-components=1 --no-same-owner && rm "node-v$NODE_VERSION-linux-$ARCH.tar.xz" SHASUMS256.txt.asc SHASUMS256.txt && find /usr/local/include/node/openssl/archs -mindepth 1 -maxdepth 1 ! -name "$OPENSSL_ARCH" -exec rm -rf {} \; && apt-mark auto '.*' > /dev/null && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && ln -s /usr/local/bin/node /usr/local/bin/nodejs && node --version && npm --version && rm -rf /tmp/* # buildkit
ENV YARN_VERSION=1.22.22
RUN /bin/sh -c set -ex && savedAptMark="$(apt-mark showmanual)" && apt-get update && apt-get install -y ca-certificates curl wget gnupg dirmngr --no-install-recommends && rm -rf /var/lib/apt/lists/* && export GNUPGHOME="$(mktemp -d)" && for key in 6A010C5166006599AA17F08146C2130DFD2497F5 ; do { gpg --batch --keyserver hkps://keys.openpgp.org --recv-keys "$key" && gpg --batch --fingerprint "$key"; } || { gpg --batch --keyserver keyserver.ubuntu.com --recv-keys "$key" && gpg --batch --fingerprint "$key"; } ; done && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" && curl -fsSLO --compressed "https://yarnpkg.com/downloads/$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz.asc" && gpg --batch --verify yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && gpgconf --kill all && rm -rf "$GNUPGHOME" && mkdir -p /opt && tar -xzf yarn-v$YARN_VERSION.tar.gz -C /opt/ && ln -s /opt/yarn-v$YARN_VERSION/bin/yarn /usr/local/bin/yarn && ln -s /opt/yarn-v$YARN_VERSION/bin/yarnpkg /usr/local/bin/yarnpkg && rm yarn-v$YARN_VERSION.tar.gz.asc yarn-v$YARN_VERSION.tar.gz && apt-mark auto '.*' > /dev/null && { [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark > /dev/null; } && find /usr/local -type f -executable -exec ldd '{}' ';' | awk '/=>/ { so = $(NF-1); if (index(so, "/usr/local/") == 1) { next }; gsub("^/(usr/)?", "", so); print so }' | sort -u | xargs -r dpkg-query --search | cut -d: -f1 | sort -u | xargs -r apt-mark manual && apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && yarn --version && rm -rf /tmp/* # buildkit
COPY docker-entrypoint.sh /usr/local/bin/ # buildkit
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["node"]
SHELL [/bin/bash -o pipefail -c]
RUN /bin/bash -o pipefail -c apt-get update && apt-get install -y --no-install-recommends bash ca-certificates curl git openssh-client build-essential g++-13 clang clangd cmake ninja-build pkg-config python3 python3-venv unzip zip xz-utils libpcre2-dev zlib1g-dev liblzma-dev liblz4-dev libzstd-dev libxxhash-dev libssl-dev libcurl4-openssl-dev libxml2-dev libtbb-dev libsqlite3-dev libfreetype6-dev libfontconfig1-dev libpng-dev libx11-dev libxext-dev libxft-dev libxpm-dev libgl1 libglu1-mesa libgsl-dev libfftw3-dev && rm -rf /var/lib/apt/lists/* # buildkit
COPY / /opt/root/ # buildkit
ARG EIGEN_VERSION=5.0.0
RUN |1 EIGEN_VERSION=5.0.0 /bin/bash -o pipefail -c curl --fail --location --show-error "https://gitlab.com/libeigen/eigen/-/archive/${EIGEN_VERSION}/eigen-${EIGEN_VERSION}.tar.gz" --output /tmp/eigen.tar.gz && mkdir -p /opt/eigen /opt/image-info && tar -xzf /tmp/eigen.tar.gz --directory /opt/eigen --strip-components=1 && test -f /opt/eigen/Eigen/Core && sha256sum /tmp/eigen.tar.gz > /opt/image-info/eigen-archive.sha256 && rm /tmp/eigen.tar.gz # buildkit
ENV ROOTSYS=/opt/root EIGEN3_INCLUDE_DIR=/opt/eigen PATH=/opt/root/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin LD_LIBRARY_PATH=/opt/root/lib CC=/usr/bin/clang CXX=/usr/bin/clang++ OMP_NUM_THREADS=1 OPENBLAS_NUM_THREADS=1 MKL_NUM_THREADS=1 MPLBACKEND=Agg
RUN |1 EIGEN_VERSION=5.0.0 /bin/bash -o pipefail -c set -eu test -x /opt/root/bin/root-config test -f /opt/root/include/Math/Minimizer.h if [ "$(root-config --incdir)" != "/opt/root/include" ] || \ [ "$(root-config --libdir)" != "/opt/root/lib" ]; then echo "ROOT still reports paths outside /opt/root." echo "Supply a relocatable installed ROOT distribution." exit 1 fi for library in libCore.so libMathCore.so libMinuit2.so; do test -f "/opt/root/lib/${library}" dependencies="$(ldd "/opt/root/lib/${library}")" printf '%s\n' "$dependencies" if grep -q "not found" <<< "$dependencies"; then echo "Missing runtime dependency for ${library}." exit 1 fi done root-config --version > /opt/image-info/root-version.txt root-config --features > /opt/image-info/root-features.txt # buildkit
RUN |1 EIGEN_VERSION=5.0.0 /bin/bash -o pipefail -c set -eu cat > /tmp/fit-smoke.cxx <<'CPP' #include <cmath> #include <complex> #include <iostream> #include <memory> #include <Eigen/Dense> #include <Math/Factory.h> #include <Math/Functor.h> #include <Math/Minimizer.h> #include <TSystem.h> int main() { Eigen::MatrixXcd matrix = Eigen::MatrixXcd::Identity(3, 3); matrix(0, 1) = std::complex<double>(0.2, 0.3); Eigen::JacobiSVD<Eigen::MatrixXcd> svd( matrix, Eigen::ComputeFullU | Eigen::ComputeFullV); if (!svd.singularValues().allFinite()) return 1; if (gSystem->Load("libMinuit2") < 0) return 2; std::unique_ptr<ROOT::Math::Minimizer> fit( ROOT::Math::Factory::CreateMinimizer("Minuit2", "Migrad")); if (!fit) return 3; ROOT::Math::Functor objective( [](const double* x) { return (x[0] - 2.0) * (x[0] - 2.0); }, 1); fit->SetFunction(objective); fit->SetVariable(0, "x", 0.0, 0.1); fit->SetMaxFunctionCalls(10000); fit->SetTolerance(1.0e-5); fit->SetPrintLevel(-1); if (!fit->Minimize() || fit->Status() != 0) return 4; if (std::abs(fit->X()[0] - 2.0) > 1.0e-4) return 5; if (!fit->Hesse()) return 6; std::cout << "Complex Eigen, Minuit2 and Hesse checks passed.\n"; return 0; } CPP /usr/bin/clang++ -O2 \ $(root-config --cflags) \ -I/opt/eigen /tmp/fit-smoke.cxx \ $(root-config --libs) \ -o /tmp/fit-smoke /tmp/fit-smoke node --version git --version dpkg-query -W > /opt/image-info/debian-packages.txt rm /tmp/fit-smoke /tmp/fit-smoke.cxx # buildkit
WORKDIR /workspace
ENTRYPOINT []
CMD ["/bin/bash"]
Details
Container
2026-09-15 19:18:43 +02:00
3
OCI / Docker
linux/amd64
1.1 GiB
Versions (1) View all
root6-eigen5 2026-09-15