镜像构建历史
# 2025-04-05 15:11:44 0.00B 设置默认要执行的命令
CMD ["java" "-jar" "/app/bin/reader.jar"]
# 2025-04-05 15:11:44 72.91MB 复制文件或目录到容器中
ADD ./reader.jar /app/bin/reader.jar # buildkit
# 2025-04-05 15:11:44 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/usr/bin/tini" "--"]
# 2025-04-05 15:11:44 0.00B 声明容器运行时监听的端口
EXPOSE map[8080/tcp:{}]
# 2025-04-05 15:11:44 0.00B 设置环境变量 TZ
ENV TZ=Asia/Shanghai
# 2025-04-05 15:11:44 6.14MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get update; apt-get install -y ca-certificates tini tzdata; update-ca-certificates; rm -rf /var/lib/apt/lists/* # buildkit
# 2022-08-03 02:10:32 13.63MB
/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="0db27185d9fc3174f2c670f814df3dda8a008b89d1a38a5d96cbbe119767ebfb1cf0bce956b27954aee9be19c4a7b91f2579d967932207976322033a86075f98"; TOMCAT_DWNLD_URL="https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.35/bin/apache-tomcat-9.0.35.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="-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="-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";
# 2022-08-03 02:09:56 0.00B
/bin/sh -c #(nop) ENV JAVA_TOOL_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal
# 2022-08-03 02:09:55 0.00B
/bin/sh -c #(nop) ENV JAVA_HOME=/opt/java/openjdk PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2022-08-03 02:09:55 127.21MB
/bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='0c8842db66c0b4052db8c29846f05292e16d9fedad4d709f31ba890f315337a2'; BINARY_URL='https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u332-b09_openj9-0.32.0/ibm-semeru-open-jre_aarch64_linux_8u332b09_openj9-0.32.0.tar.gz'; ;; ppc64el|ppc64le) ESUM='617d1cf32797865a11ff5287f977c811d5896c4ba4bbd6e30dd1656ff77ebadf'; BINARY_URL='https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u332-b09_openj9-0.32.0/ibm-semeru-open-jre_ppc64le_linux_8u332b09_openj9-0.32.0.tar.gz'; ;; amd64|x86_64) ESUM='2acd73ad996814b8e3814049827de8e20ac0fbf49d336606ee67e0bfb5d4642a'; BINARY_URL='https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u332-b09_openj9-0.32.0/ibm-semeru-open-jre_x64_linux_8u332b09_openj9-0.32.0.tar.gz'; ;; s390x) ESUM='9de302279177da142490ee6531e901cce93fd41f1c893f521ee141a45a4200c1'; BINARY_URL='https://github.com/ibmruntimes/semeru8-binaries/releases/download/jdk8u332-b09_openj9-0.32.0/ibm-semeru-open-jre_s390x_linux_8u332b09_openj9-0.32.0.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;
# 2022-08-03 02:08:45 0.00B
/bin/sh -c #(nop) ENV JAVA_VERSION=jdk8u332-b09_openj9-0.32.0
# 2022-08-03 01:51:12 42.15MB
/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/*
# 2022-08-03 01:50:53 0.00B
/bin/sh -c #(nop) ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 2022-08-02 09:18:51 0.00B
/bin/sh -c #(nop) CMD ["bash"]
# 2022-08-02 09:18:51 65.65MB
/bin/sh -c #(nop) ADD file:151548d1bfac57d762f2c0b18b2378c363ffd1568da9fecd4be611db4832e8e2 in /
镜像信息
{
"Id": "sha256:383ee17a6a0b29868df0cbf6f428805c5feae82ecc982e6846a8f2c0649b9e27",
"RepoTags": [
"hectorqin/reader:openj9-latest",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hectorqin/reader:openj9-latest-linuxarm64"
],
"RepoDigests": [
"hectorqin/reader@sha256:989cd88d3856ad95cf7b835991cf17826fb7592000f69ac6f9255446d24ccebe",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hectorqin/reader@sha256:d4ab01f1e1021b8aa7eae0ce8806568f535580ea478287c40759198ba82df527"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-04-05T07:11:44.766926802Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8080/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=en_US.UTF-8",
"LANGUAGE=en_US:en",
"LC_ALL=en_US.UTF-8",
"JAVA_VERSION=jdk8u332-b09_openj9-0.32.0",
"JAVA_HOME=/opt/java/openjdk",
"JAVA_TOOL_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal",
"TZ=Asia/Shanghai"
],
"Cmd": [
"java",
"-jar",
"/app/bin/reader.jar"
],
"ArgsEscaped": true,
"Image": "",
"Volumes": null,
"WorkingDir": "",
"Entrypoint": [
"/usr/bin/tini",
"--"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.created": "2025-04-05T07:04:06.096Z",
"org.opencontainers.image.description": "reader 专业版",
"org.opencontainers.image.licenses": "GPL-3.0",
"org.opencontainers.image.revision": "f197c69d7e198c0af431dde61cd817061d543174",
"org.opencontainers.image.source": "https://github.com/hectorqin/reader-pro",
"org.opencontainers.image.title": "reader-pro",
"org.opencontainers.image.url": "https://github.com/hectorqin/reader-pro",
"org.opencontainers.image.version": "openj9-3.2.13"
}
},
"Architecture": "arm64",
"Os": "linux",
"Size": 327684218,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/8edcb2b69714cf4cb469699b17cb955bbfc1dfc72fdc4c4857a09168dccfe3bd/diff:/var/lib/docker/overlay2/3c98be632064f975550a44760978acd0167a30e5765c7c5cfc2123ff36919bbd/diff:/var/lib/docker/overlay2/091880b9ff33de7acff46bafcac75c8279cc05145e572aa4d4bf49e98a414017/diff:/var/lib/docker/overlay2/6f3d6bf11100df5cb11f0e116c73bb7709ce8f19b77daaa17d5664da6f80ee7b/diff:/var/lib/docker/overlay2/140b6dfadff000965a03b533f9fe7818400d8549b38920e04dc4e1c4efba96d2/diff",
"MergedDir": "/var/lib/docker/overlay2/0a12bbc698c041c497db675bfe88090c0543d764f804407dea92a24fb745efd9/merged",
"UpperDir": "/var/lib/docker/overlay2/0a12bbc698c041c497db675bfe88090c0543d764f804407dea92a24fb745efd9/diff",
"WorkDir": "/var/lib/docker/overlay2/0a12bbc698c041c497db675bfe88090c0543d764f804407dea92a24fb745efd9/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:9beca9c8e2ecd104c677c9641a49185b9f8378ea324deb0fe9cf27110b1b6d63",
"sha256:5f63c084c673f63f39c78e10e9d8aac7a0c0d019421cf409ff825729a1196bd4",
"sha256:5e2ee068e7cf256b10108866767c53a699266891efbc6ea153ff67ab1878d219",
"sha256:a8c55217195af561c369bb3defeb0f1758b7c406ed59e4e25837e7c1b38e9a74",
"sha256:6d8856b37b9816550a8d9360a74a463bc5bbfe926d8ab75406476038e3069839",
"sha256:0bd0b5626532df3a18855b417a938e0674c8b78d7db5c5bf09b1f6c05d18030d"
]
},
"Metadata": {
"LastTagTime": "2025-04-28T15:34:09.53155274+08:00"
}
}