镜像构建历史
# 2025-05-25 17:46:04 0.00B 设置默认要执行的命令
CMD ["java" "-jar" "/app/bin/reader.jar"]
# 2025-05-25 17:46:04 72.91MB 复制文件或目录到容器中
ADD ./reader.jar /app/bin/reader.jar # buildkit
# 2025-05-25 17:46:04 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/usr/bin/tini" "--"]
# 2025-05-25 17:46:04 0.00B 声明容器运行时监听的端口
EXPOSE map[8080/tcp:{}]
# 2025-05-25 17:46:04 0.00B 设置环境变量 TZ
ENV TZ=Asia/Shanghai
# 2025-05-25 17:46:03 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:788ac00bfe2336e1e79c6fdf4b03254dddcb3031940abda753774adb8034415a",
"RepoTags": [
"hectorqin/reader:openj9-3.2.14",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hectorqin/reader:openj9-3.2.14-linuxarm64"
],
"RepoDigests": [
"hectorqin/reader@sha256:e1fb902114136d77bb858b02dbfbdb1b675ca866f7631a8614ab2e4ef0a51e49",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/hectorqin/reader@sha256:382affa254302a039c6e95e4ae65bc3bed1407015ce3641b4b7135d1a07c3656"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-05-25T09:46:04.169406964Z",
"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-05-25T09:38:31.327Z",
"org.opencontainers.image.description": "reader 专业版",
"org.opencontainers.image.licenses": "GPL-3.0",
"org.opencontainers.image.revision": "3908ed5dab1793f1aebad6d23a9a686fae53ea09",
"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.14"
}
},
"Architecture": "arm64",
"Os": "linux",
"Size": 327691440,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/329e817d10ef5fa769c708966e32fb941dcf3cd2c24f84a0cdedb89a4df9797d/diff:/var/lib/docker/overlay2/02104672cf0fc722298f2e07101fdf48a4518f01e402e262b501d2c1cd68038b/diff:/var/lib/docker/overlay2/dd71c17989e2e53422cd5b4bbb97d888f97707d7c9ab8c31daeec7c0bc216c05/diff:/var/lib/docker/overlay2/8f426d6c6066c17ee435b20b9d786b6f000c8168cd9f97c2f8478aafb739b8d1/diff:/var/lib/docker/overlay2/7e73acb424af82ff0380977c8835a1970cade133d9f1af0f27ca667aa102c7f7/diff",
"MergedDir": "/var/lib/docker/overlay2/7df5ef4d238df5f15b532cd90f81d11fc560764b670830be3d68e9f83feb3d9c/merged",
"UpperDir": "/var/lib/docker/overlay2/7df5ef4d238df5f15b532cd90f81d11fc560764b670830be3d68e9f83feb3d9c/diff",
"WorkDir": "/var/lib/docker/overlay2/7df5ef4d238df5f15b532cd90f81d11fc560764b670830be3d68e9f83feb3d9c/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:9beca9c8e2ecd104c677c9641a49185b9f8378ea324deb0fe9cf27110b1b6d63",
"sha256:5f63c084c673f63f39c78e10e9d8aac7a0c0d019421cf409ff825729a1196bd4",
"sha256:5e2ee068e7cf256b10108866767c53a699266891efbc6ea153ff67ab1878d219",
"sha256:a8c55217195af561c369bb3defeb0f1758b7c406ed59e4e25837e7c1b38e9a74",
"sha256:293ae85dacf116a33ba4f8af038b576c026bbbbef56beb643db07aa5a042b0d0",
"sha256:8d724eacb54d2bd4525b5da30c5973f4a99067a0bf7f8c1c111fedc5c2b2785b"
]
},
"Metadata": {
"LastTagTime": "2025-11-28T17:05:32.616250581+08:00"
}
}