镜像构建历史
# 2025-02-22 20:46:38 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["sh" "-c" "java ${JVM_OPTS} org.springframework.boot.loader.launch.JarLauncher ${0} ${@}"]
# 2025-02-22 20:46:38 0.00B 声明容器运行时监听的端口
EXPOSE map[8090/tcp:{}]
# 2025-02-22 20:46:38 47.00B 执行命令并创建新的镜像层
RUN /bin/sh -c ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # buildkit
# 2025-02-22 20:46:38 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
# 2025-02-22 20:46:38 27.94MB 复制新文件或目录到容器中
COPY application/application/ ./ # buildkit
# 2025-02-22 20:46:37 0.00B 复制新文件或目录到容器中
COPY application/snapshot-dependencies/ ./ # buildkit
# 2025-02-22 20:46:37 400.67KB 复制新文件或目录到容器中
COPY application/spring-boot-loader/ ./ # buildkit
# 2025-02-22 20:46:37 97.69MB 复制新文件或目录到容器中
COPY application/dependencies/ ./ # buildkit
# 2025-02-22 20:46:33 0.00B 设置工作目录为/application
WORKDIR /application
# 2025-02-22 20:46:33 0.00B 添加元数据标签
LABEL maintainer=johnniang <johnniang@foxmail.com>
# 2025-02-13 12:44:33 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="bf406b3e288e1732d82d08f54e160095451a6cc969f72adf395c074d6d08893ef1ccd2afcd55f01ca8e54131f587c88055832f36330a1ede0cc2f84440cf54df"; TOMCAT_DWNLD_URL="https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.99/bin/apache-tomcat-9.0.99.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
# 2025-02-13 12:44:33 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
# 2025-02-13 12:44:33 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
# 2025-02-13 12:44:33 173.64MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='1090db3f7b30b4a45e3d5f228ac529ace87000bd9b342d91a639f0181a0058f5'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.6%2B7_openj9-0.49.0/ibm-semeru-open-jre_aarch64_linux_21.0.6_7_openj9-0.49.0.tar.gz'; ;; amd64|x86_64) ESUM='cca7d1599ff83063dd16965dcbf91915a7654e5086f3b3b71744adf7769d11de'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.6%2B7_openj9-0.49.0/ibm-semeru-open-jre_x64_linux_21.0.6_7_openj9-0.49.0.tar.gz'; ;; ppc64el|ppc64le) ESUM='ece962ee7ce419e25048a89228b61c4ce8c318ec6fade470484d6537bb87ea3f'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.6%2B7_openj9-0.49.0/ibm-semeru-open-jre_ppc64le_linux_21.0.6_7_openj9-0.49.0.tar.gz'; ;; s390x) ESUM='ab2070fa866e86978a5a2753dfc6128fc2012b97bf4e95d888d3dda916844a52'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.6%2B7_openj9-0.49.0/ibm-semeru-open-jre_s390x_linux_21.0.6_7_openj9-0.49.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
# 2025-02-13 12:44:33 0.00B 设置环境变量 JAVA_VERSION
ENV JAVA_VERSION=jdk-21.0.6+7_openj9-0.49.0
# 2025-02-13 12:44:33 50.17MB 执行命令并创建新的镜像层
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
# 2025-02-13 12:44:33 0.00B 设置环境变量 LANG LANGUAGE LC_ALL
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 2025-01-27 12:14:03 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2025-01-27 12:14:03 78.13MB
/bin/sh -c #(nop) ADD file:6df775300d76441aa33f31b22c1afce8dfe35c8ffbc14ef27c27009235b12a95 in /
# 2025-01-27 12:14:00 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=24.04
# 2025-01-27 12:14:00 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu
# 2025-01-27 12:14:00 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2025-01-27 12:14:00 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:c0787117a504573ffcf2f69f0e749b1581de544c8d91bede63fe968a5c6fd621",
"RepoTags": [
"halohub/halo:2.20.15",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo:2.20.15"
],
"RepoDigests": [
"halohub/halo@sha256:1237f9401e21986c9bbaca20f55f7c811f035d79047f15c604f467d653fc9a07",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo@sha256:71810d9bad0f6dcb75dee74a0756f9055f98018f0938d39f06bca77f59d99d28"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-02-22T12:46:38.399884648Z",
"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.6+7_openj9-0.49.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": "2025-02-22T12:46:01.629Z",
"org.opencontainers.image.description": "强大易用的开源建站工具。",
"org.opencontainers.image.licenses": "GPL-3.0",
"org.opencontainers.image.ref.name": "ubuntu",
"org.opencontainers.image.revision": "0cdd8d1469e73801ee8ea11c4036c05b66260db8",
"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": 444749034,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/50bcc6ee2143bec7f08e7d166e73c81d8b015a0f2435b4694752a05340047378/diff:/var/lib/docker/overlay2/327db1197ab30e3691c558e71304037e3168a6fd6ecce7162a8fa40bf2f4b74c/diff:/var/lib/docker/overlay2/85c8107b64bc2bb826b046fdb4da2af43912100595e0164a1c97f58f6ace5ba2/diff:/var/lib/docker/overlay2/2dc30e9c5875d8bed087c2322261f8e2a9c7ea2b01cf9bc8a42eebb32442f197/diff:/var/lib/docker/overlay2/72e8915d068a85be04b9bec8fa5574051bc5c959d891e4867a61fab3e806c992/diff:/var/lib/docker/overlay2/558fa2b0145d6103cfee723a0db16bb5634635efb69e6ceb07f92dd9b87b8a17/diff:/var/lib/docker/overlay2/9fa23a0954e2266ae91526ea3517bc75f16af39b56d0f4d7e9585caed4082462/diff:/var/lib/docker/overlay2/b4678ecefe5281d7ab7edeb8126796d7abd2c5aa6898ae949415b472a322b3ef/diff:/var/lib/docker/overlay2/d5ba5778451cb9d6cd53a762324cbf17a65345e17306b42b60d69ba8f9186927/diff",
"MergedDir": "/var/lib/docker/overlay2/ebba36f54e41f4fe926a651f6ef775a7545f3152c83bc97097964348cde95661/merged",
"UpperDir": "/var/lib/docker/overlay2/ebba36f54e41f4fe926a651f6ef775a7545f3152c83bc97097964348cde95661/diff",
"WorkDir": "/var/lib/docker/overlay2/ebba36f54e41f4fe926a651f6ef775a7545f3152c83bc97097964348cde95661/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:4b7c01ed0534d4f9be9cf97d068da1598c6c20b26cb6134fad066defdb6d541d",
"sha256:09a92260b767bb123df5dad4be39d09adb42feb5c25335dc29b9fcfb54a1d298",
"sha256:3489bce8952ca3467326a5e546597f8ce1fdcc6ce2db985a7aa400643ff602ec",
"sha256:c93522e815ece135e6971b97ae363ca594de21f7fde6829d69bda90799a85a62",
"sha256:c424fd34708df248388400c187c7ef9c00b0d6ad83f316cf899261ac740dbd27",
"sha256:ba759704f2ba9fa91c6bdd4daba01bb884701179031fa06887ba1c228f678a42",
"sha256:0b161faa5686be0979a868ff4cddaa145bd5663331656b75840e27b6f87faf3c",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:05800e91c76ab8b0c87e1fa3c931e40b75be58ea911b883a660a77826608bd75",
"sha256:678682f04a614c805a2e6495cf936ff46929975d4d5756f2a77fd06ac142ae5a"
]
},
"Metadata": {
"LastTagTime": "2025-03-07T22:22:02.982111663+08:00"
}
}