镜像构建历史
# 2024-09-10 17:48:55 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["sh" "-c" "java ${JVM_OPTS} org.springframework.boot.loader.launch.JarLauncher ${0} ${@}"]
# 2024-09-10 17:48:55 0.00B 声明容器运行时监听的端口
EXPOSE map[8090/tcp:{}]
# 2024-09-10 17:48:55 47.00B 执行命令并创建新的镜像层
RUN /bin/sh -c ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # buildkit
# 2024-09-10 17:48:55 0.00B 设置环境变量 JVM_OPTS HALO_WORK_DIR SPRING_CONFIG_LOCATION TZ
ENV JVM_OPTS=-Xmx256m -Xms256m HALO_WORK_DIR=/root/.halo2 SPRING_CONFIG_LOCATION=optional:classpath:/;optional:file:/root/.halo2/ TZ=Asia/Shanghai
# 2024-09-10 17:48:55 19.49MB 复制新文件或目录到容器中
COPY application/application/ ./ # buildkit
# 2024-09-10 17:48:55 0.00B 复制新文件或目录到容器中
COPY application/snapshot-dependencies/ ./ # buildkit
# 2024-09-10 17:48:55 398.35KB 复制新文件或目录到容器中
COPY application/spring-boot-loader/ ./ # buildkit
# 2024-09-10 17:48:55 89.81MB 复制新文件或目录到容器中
COPY application/dependencies/ ./ # buildkit
# 2024-09-10 17:48:50 0.00B 设置工作目录为/application
WORKDIR /application
# 2024-09-10 17:48:50 0.00B 添加元数据标签
LABEL maintainer=johnniang <johnniang@foxmail.com>
# 2024-08-12 10:58:45 16.78MB 执行命令并创建新的镜像层
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="3069924eb7041ccc0f2aeceb7d8626793a1a073a5b739a840d7974a18ebeb26cc3374cc5f4a3ffc74d3b019c0cb33e3d1fe96296e6663ac75a73c1171811726d"; TOMCAT_DWNLD_URL="https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.93/bin/apache-tomcat-9.0.93.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
# 2024-08-12 10:58:45 0.00B 设置环境变量 JAVA_TOOL_OPTIONS -Xshareclasses:name
ENV JAVA_TOOL_OPTIONS=-XX:+IgnoreUnrecognizedVMOptions -XX:+PortableSharedCache -XX:+IdleTuningGcOnIdle -Xshareclasses:name=openj9_system_scc,cacheDir=/opt/java/.scc,readonly,nonFatal
# 2024-08-12 10:58:45 0.00B 设置环境变量 JAVA_HOME PATH
ENV JAVA_HOME=/opt/java/openjdk PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2024-08-12 10:58:45 172.44MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='cda6391db96db77167829a775e72d90079fb78887140595648f2959dafc8360b'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.4%2B7_openj9-0.46.0/ibm-semeru-open-jre_aarch64_linux_21.0.4_7_openj9-0.46.0.tar.gz'; ;; amd64|x86_64) ESUM='6db728e08b4cba2490e720cf4e11d13096f6ecfe9429a60a996128c4d629a26e'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.4%2B7_openj9-0.46.0/ibm-semeru-open-jre_x64_linux_21.0.4_7_openj9-0.46.0.tar.gz'; ;; ppc64el|ppc64le) ESUM='f30cdddf90283b12fbf8ff8c9957fca82bd5f0cf2cc493e9a8bcf4646793b016'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.4%2B7_openj9-0.46.0/ibm-semeru-open-jre_ppc64le_linux_21.0.4_7_openj9-0.46.0.tar.gz'; ;; s390x) ESUM='07f0b16876e7f54bcccc51d704db898812c72285fc72413a06517c3baacbf6b1'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.4%2B7_openj9-0.46.0/ibm-semeru-open-jre_s390x_linux_21.0.4_7_openj9-0.46.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; # buildkit
# 2024-08-12 10:58:45 0.00B 设置环境变量 JAVA_VERSION
ENV JAVA_VERSION=jdk-21.0.4+7_openj9-0.46.0
# 2024-08-12 10:58:45 34.01MB 执行命令并创建新的镜像层
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
# 2024-08-12 10:58:45 0.00B 设置环境变量 LANG LANGUAGE LC_ALL
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 2024-08-12 10:58:45 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2024-08-12 10:58:45 77.86MB
/bin/sh -c #(nop) ADD file:2f8a54a5efd080fb81efea702b4e3e07d946eec7563fb2281bd28950c10ec462 in /
# 2024-08-12 10:58:45 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=22.04
# 2024-08-12 10:58:45 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu
# 2024-08-12 10:58:45 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2024-08-12 10:58:45 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:9bf980655048185c26a88e159d37c4f84ef2dc3734e2f288f5907de20ef20893",
"RepoTags": [
"halohub/halo:2.19.3",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo:2.19.3"
],
"RepoDigests": [
"halohub/halo@sha256:20beaae74596c8920314e993071670e183b2c6e03a607fed469a30a80ae45d49",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo@sha256:a8d50affec4477c5979c35f737b36c55f541eb44050e696257a881c77ec464da"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2024-09-10T09:48:55.563658816Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8090/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=jdk-21.0.4+7_openj9-0.46.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",
"JVM_OPTS=-Xmx256m -Xms256m",
"HALO_WORK_DIR=/root/.halo2",
"SPRING_CONFIG_LOCATION=optional:classpath:/;optional:file:/root/.halo2/",
"TZ=Asia/Shanghai"
],
"Cmd": null,
"Image": "",
"Volumes": null,
"WorkingDir": "/application",
"Entrypoint": [
"sh",
"-c",
"java ${JVM_OPTS} org.springframework.boot.loader.launch.JarLauncher ${0} ${@}"
],
"OnBuild": null,
"Labels": {
"maintainer": "johnniang \u003cjohnniang@foxmail.com\u003e",
"org.opencontainers.image.created": "2024-09-10T09:48:27.159Z",
"org.opencontainers.image.description": "强大易用的开源建站工具。",
"org.opencontainers.image.licenses": "GPL-3.0",
"org.opencontainers.image.ref.name": "ubuntu",
"org.opencontainers.image.revision": "9ffb1bbc10d964a83e9baa02c8a15ae5d7a2e74f",
"org.opencontainers.image.source": "https://github.com/halo-dev/halo",
"org.opencontainers.image.title": "halo",
"org.opencontainers.image.url": "https://github.com/halo-dev/halo",
"org.opencontainers.image.version": "2"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 410790705,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/34244f72f4c2c28631622925bb724c0e8c63b2a2200418be6c13af9365b3af69/diff:/var/lib/docker/overlay2/404fb0bb5b1dc6bca6fbc519ceb783882e5ae2a9b169d6243c73a5e6cd67ea41/diff:/var/lib/docker/overlay2/95d632d14f05612e1c7d3b628505ddbf5961c93eb8fe3e9a13afa486fed76c70/diff:/var/lib/docker/overlay2/2e8f8ba169a7e311a845f44f818c5cdc5f604f7df5beeba99154b07e86b01f22/diff:/var/lib/docker/overlay2/4276973b8cf4ccec535097dd4d49a7acdf9248b146665e0a7e5ca8ca7ed3d074/diff:/var/lib/docker/overlay2/49ea3fc2ffeaede8a9d116235d57554519a9b44a28107554ecf72a2dd77c1a10/diff:/var/lib/docker/overlay2/9a77ed5d0048cf42e07b11c9548135b85af46c9f28d7143e662de1dce57c46cc/diff:/var/lib/docker/overlay2/ce74a6b7e8c36b3cfb0bfe071cbeeb219b73fd58d1f01498839e30d162bbd154/diff:/var/lib/docker/overlay2/38e26936a01f4606696a3fe23203819b5375970d80f602b61ea2e662b042c408/diff",
"MergedDir": "/var/lib/docker/overlay2/ab6b039c095ea4dbd70d4199ba71d1602a04693aee6332343bde98a8ff324e1b/merged",
"UpperDir": "/var/lib/docker/overlay2/ab6b039c095ea4dbd70d4199ba71d1602a04693aee6332343bde98a8ff324e1b/diff",
"WorkDir": "/var/lib/docker/overlay2/ab6b039c095ea4dbd70d4199ba71d1602a04693aee6332343bde98a8ff324e1b/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:1b9b7346fee7abbc7f5538eaa23548bd05a45abe8daf6794024be0c8ad7d60bb",
"sha256:d2404b1a4132b74c6c24e43260ebd210beca263e3dcb9e348b8ccd7d03ae3619",
"sha256:5f119da1d2273bf3a5ee7db6a659437fe130b94d053c40d7bed853456f047331",
"sha256:28ddc726e8471bd83937c4e57f13ff20b6be34fcdbcfbb3b83c1464c5b9442c1",
"sha256:16b85670548209872816847ed713892a118dce751aacee7d0d6eb8d1659a0112",
"sha256:f03c4e6c9b74a9fdaf3e7ebd7b6c3d4ab96e0177c53d79852c263bea1aacc5f9",
"sha256:c382a11e41347caaed0ca7ed7ebb028e5362f574c582329da44a83866dd8ba98",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:ec1c1f89b865663a88373e7993789385fef3930730fb7f0bb271cefdd18cf5b3",
"sha256:2aa48cd6249b12d6dc9ac365d5ec57cc68fefa75f9cfbb2ca2645c3bfd4ebcce"
]
},
"Metadata": {
"LastTagTime": "2025-06-19T00:17:57.671428822+08:00"
}
}