besu-hpc (latest)

Published 2025-07-01 08:22:13 +00:00 by sofiane.gerhardt in phoenix-oss/besu-hpc

Installation

docker pull git.kvant.cloud/phoenix-oss/besu-hpc:latest
sha256:45dd330addeb1dd46cef14ea3d9618de99c82bad129c77c3c28499a81f170129

Image layers

ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=22.04
ADD file:6dc78f1eec678e679ed1d9f92297dbcf99806da788dde329389d5d786006603f in /
CMD ["/bin/bash"]
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
RUN /bin/sh -c apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends tzdata curl ca-certificates fontconfig locales && echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen && locale-gen en_US.UTF-8 && rm -rf /var/lib/apt/lists/* # buildkit
ENV JAVA_VERSION=jdk-17.0.12+7_openj9-0.46.1
RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='cb2bfe44358158dcaa903e1f9aeb3e895adc1d5ace1f764e0dc1b1aeb4ffb77e'; BINARY_URL='https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.12%2B7_openj9-0.46.1/ibm-semeru-open-jre_aarch64_linux_17.0.12_7_openj9-0.46.1.tar.gz'; ;; ppc64el|ppc64le) ESUM='29f969c56c1e82587e0fcb1c0253dec413538c9599eaec9fcdb3983d181aad96'; BINARY_URL='https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.12%2B7_openj9-0.46.1/ibm-semeru-open-jre_ppc64le_linux_17.0.12_7_openj9-0.46.1.tar.gz'; ;; amd64|x86_64) ESUM='f218a8e1596197a3e89e9eff3ef4dc3e56ff41d7e293261e02cbc589a418998e'; BINARY_URL='https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.12%2B7_openj9-0.46.1/ibm-semeru-open-jre_x64_linux_17.0.12_7_openj9-0.46.1.tar.gz'; ;; s390x) ESUM='1490c54b365dc1c4bfea47412433df79ebfd2c3f85c9f7b1c88ce2d7ae7dee75'; BINARY_URL='https://github.com/ibmruntimes/semeru17-binaries/releases/download/jdk-17.0.12%2B7_openj9-0.46.1/ibm-semeru-open-jre_s390x_linux_17.0.12_7_openj9-0.46.1.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; curl -LfsSo /tmp/openjdk.tar.gz ${BINARY_URL}; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p /opt/java/openjdk; cd /opt/java/openjdk; tar -xf /tmp/openjdk.tar.gz --strip-components=1; rm -rf /tmp/openjdk.tar.gz; # buildkit
ENV JAVA_HOME=/opt/java/openjdk PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
ENV JAVA_TOOL_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal
RUN /bin/sh -c set -eux; unset OPENJ9_JAVA_OPTIONS; SCC_SIZE="50m"; DOWNLOAD_PATH_TOMCAT=/tmp/tomcat; INSTALL_PATH_TOMCAT=/opt/tomcat-home; TOMCAT_CHECKSUM="b18103153169c7bf98da055f8ba0ac3e141d121c78869881d3be480e90fcbc3a178a8e71fa70a11aee7f2584727df72be15d30331faec65f4e57c7e67c85c1cf"; TOMCAT_DWNLD_URL="https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.95/bin/apache-tomcat-9.0.95.tar.gz"; mkdir -p "${DOWNLOAD_PATH_TOMCAT}" "${INSTALL_PATH_TOMCAT}"; curl -LfsSo "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz "${TOMCAT_DWNLD_URL}"; echo "${TOMCAT_CHECKSUM} *${DOWNLOAD_PATH_TOMCAT}/tomcat.tar.gz" | sha512sum -c -; tar -xf "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz -C "${INSTALL_PATH_TOMCAT}" --strip-components=1; rm -rf "${DOWNLOAD_PATH_TOMCAT}"; java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; export OPENJ9_JAVA_OPTIONS="-XX:+IProfileDuringStartupPhase -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 5; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh -force; sleep 15; FULL=$( (java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); DST_CACHE=$(java -Xshareclasses:name=dry_run_scc,cacheDir=/opt/java/.scc,destroy 2>&1 || true); SCC_SIZE=$(echo $SCC_SIZE | sed 's/.$//'); SCC_SIZE=$(awk "BEGIN {print int($SCC_SIZE * $FULL / 100.0)}"); [ "${SCC_SIZE}" -eq 0 ] && SCC_SIZE=1; SCC_SIZE="${SCC_SIZE}m"; java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal,createLayer -Xscmx$SCC_SIZE -version; unset OPENJ9_JAVA_OPTIONS; export OPENJ9_JAVA_OPTIONS="-XX:+IProfileDuringStartupPhase -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,bootClassesOnly,nonFatal"; "${INSTALL_PATH_TOMCAT}"/bin/startup.sh; sleep 5; "${INSTALL_PATH_TOMCAT}"/bin/shutdown.sh -force; sleep 5; FULL=$( (java -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,printallStats 2>&1 || true) | awk '/^Cache is [0-9.]*% .*full/ {print substr($3, 1, length($3)-1)}'); echo "SCC layer is $FULL% full."; rm -rf "${INSTALL_PATH_TOMCAT}"; if [ -d "/opt/java/.scc" ]; then chmod -R 0777 /opt/java/.scc; fi; echo "SCC generation phase completed"; # buildkit
ARG UID=1000
ARG GID=1000
ARG BESU_HOME=/opt/besu
RUN |3 UID=1000 GID=1000 BESU_HOME=/opt/besu /bin/sh -c apt-get update && apt-get install --no-install-recommends -q --assume-yes libjemalloc-dev=5.* && apt-get clean && rm -rf /var/lib/apt/lists/* # buildkit
RUN |3 UID=1000 GID=1000 BESU_HOME=/opt/besu /bin/sh -c groupadd -g $GID besu && adduser --uid $UID --gid $GID --disabled-password --gecos "" --home $BESU_HOME besu && chown $UID:$GID /opt/besu # buildkit
COPY --chown=1000:1000 /opt/besu /opt/besu # buildkit
RUN |3 UID=1000 GID=1000 BESU_HOME=/opt/besu /bin/sh -c curl -s -o $BESU_HOME/lib/log4j2-ecs-layout-1.3.0.jar https://repo1.maven.org/maven2/co/elastic/logging/log4j2-ecs-layout/1.3.0/log4j2-ecs-layout-1.3.0.jar && curl -s -o $BESU_HOME/lib/ecs-logging-core-1.3.0.jar https://repo1.maven.org/maven2/co/elastic/logging/ecs-logging-core/1.3.0/ecs-logging-core-1.3.0.jar # buildkit
RUN |3 UID=1000 GID=1000 BESU_HOME=/opt/besu /bin/sh -c sed -i 's|\(^CLASSPATH=.*$\)|\1:$APP_HOME/lib/log4j2-ecs-layout-1.3.0.jar:$APP_HOME/lib/ecs-logging-core-1.3.0.jar|g' $BESU_HOME/bin/besu # buildkit
COPY --chown=1000:1000 log4j2.xml /opt/besu/ # buildkit
RUN |3 UID=1000 GID=1000 BESU_HOME=/opt/besu /bin/sh -c mkdir -p /config && chown $UID:$GID /config # buildkit
COPY --chown=1000:1000 entrypoint.sh /usr/local/bin/entrypoint.sh # buildkit
RUN |3 UID=1000 GID=1000 BESU_HOME=/opt/besu /bin/sh -c chmod +x /usr/local/bin/entrypoint.sh # buildkit
EXPOSE map[30303/tcp:{} 8545/tcp:{} 8546/tcp:{} 8547/tcp:{} 8550/tcp:{} 8551/tcp:{}]
ENV BESU_RPC_HTTP_HOST=0.0.0.0
ENV BESU_RPC_WS_HOST=0.0.0.0
ENV BESU_GRAPHQL_HTTP_HOST=0.0.0.0
ENV BESU_PID_PATH=/tmp/pid
ENV OTEL_RESOURCE_ATTRIBUTES=service.name=besu,service.version=
ENV PATH=/opt/besu/bin:/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
USER besu
WORKDIR /opt/besu
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]
HEALTHCHECK &{["CMD-SHELL" "bash -c \"[ -f /tmp/pid ]\""] "5s" "1s" "5s" "0s" '\n'}

Labels

Key Value
org.opencontainers.image.ref.name ubuntu
org.opencontainers.image.version 22.04
Details
Container
2025-07-01 08:22:13 +00:00
602
OCI / Docker
linux/s390x
259 MiB
Versions (2) View all
23.4.4 2025-07-01
latest 2025-07-01