镜像构建历史
# 2025-01-24 18:52:40 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["sh" "-c" "java ${JVM_OPTS} org.springframework.boot.loader.launch.JarLauncher ${0} ${@}"]
# 2025-01-24 18:52:40 0.00B 声明容器运行时监听的端口
EXPOSE map[8090/tcp:{}]
# 2025-01-24 18:52:40 47.00B 执行命令并创建新的镜像层
RUN /bin/sh -c ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # buildkit
# 2025-01-24 18:52:40 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-01-24 18:52:40 27.93MB 复制新文件或目录到容器中
COPY application/application/ ./ # buildkit
# 2025-01-24 18:52:39 0.00B 复制新文件或目录到容器中
COPY application/snapshot-dependencies/ ./ # buildkit
# 2025-01-24 18:52:39 400.22KB 复制新文件或目录到容器中
COPY application/spring-boot-loader/ ./ # buildkit
# 2025-01-24 18:52:39 97.59MB 复制新文件或目录到容器中
COPY application/dependencies/ ./ # buildkit
# 2025-01-24 18:52:35 0.00B 设置工作目录为/application
WORKDIR /application
# 2025-01-24 18:52:35 0.00B 添加元数据标签
LABEL maintainer=johnniang <johnniang@foxmail.com>
# 2024-12-17 14:18:06 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="07d87286e8ee84bb291069c596cf36233e56a14e3ecb6d65eea0fa7c7042ce5e75f5db31f210b96b6b25b80b34e626dd26c5a6ed5c052384a8587d62658b5e16"; TOMCAT_DWNLD_URL="https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.98/bin/apache-tomcat-9.0.98.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-12-17 14:18:06 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-12-17 14:18:06 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-12-17 14:18:06 173.23MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in aarch64|arm64) ESUM='27fb02bb8e409c5330bbed15f6dce74c3f8255c1f2ef937a697c1b903ca9477a'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.5%2B11_openj9-0.48.0/ibm-semeru-open-jre_aarch64_linux_21.0.5_11_openj9-0.48.0.tar.gz'; ;; amd64|x86_64) ESUM='3cd0ac0e28ad83fe9097569c6ba0c84772d697c1a34fa5b93c9fcbe0493d43c8'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.5%2B11_openj9-0.48.0/ibm-semeru-open-jre_x64_linux_21.0.5_11_openj9-0.48.0.tar.gz'; ;; ppc64el|ppc64le) ESUM='ab533e7d609382cda4e5abee38102f8a467f24db77886fa0f4c680d681cdf87f'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.5%2B11_openj9-0.48.0/ibm-semeru-open-jre_ppc64le_linux_21.0.5_11_openj9-0.48.0.tar.gz'; ;; s390x) ESUM='3d5787d519e24fb5de6e4e5db78e29cd25a72d9d6de4cc96d31d377199c25c4f'; BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.5%2B11_openj9-0.48.0/ibm-semeru-open-jre_s390x_linux_21.0.5_11_openj9-0.48.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-12-17 14:18:06 0.00B 设置环境变量 JAVA_VERSION
ENV JAVA_VERSION=jdk-21.0.5+11_openj9-0.48.0
# 2024-12-17 14:18:06 34.04MB 执行命令并创建新的镜像层
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-12-17 14:18:06 0.00B 设置环境变量 LANG LANGUAGE LC_ALL
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 2024-09-12 00:25:18 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2024-09-12 00:25:17 77.86MB
/bin/sh -c #(nop) ADD file:ebe009f86035c175ba244badd298a2582914415cf62783d510eab3a311a5d4e1 in /
# 2024-09-12 00:25:16 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=22.04
# 2024-09-12 00:25:16 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.ref.name=ubuntu
# 2024-09-12 00:25:16 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2024-09-12 00:25:16 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:e1fc683d04a6fa722c32b69f2400cf4a9bf91ad9ca2e5c17b7dc8222af7b902f",
"RepoTags": [
"halohub/halo:2.20.14",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo:2.20.14"
],
"RepoDigests": [
"halohub/halo@sha256:d9edd626c85ed6c156327930ec014e8c0308aecee79b0f29097b83796b795dcd",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo@sha256:4e9dc07fe42038dfdf1c56103f655981c0bf9bb8b87fcaf7a083a9f6caec8b42"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2025-01-24T10:52:40.320791056Z",
"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.5+11_openj9-0.48.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-01-24T10:52:03.229Z",
"org.opencontainers.image.description": "强大易用的开源建站工具。",
"org.opencontainers.image.licenses": "GPL-3.0",
"org.opencontainers.image.ref.name": "ubuntu",
"org.opencontainers.image.revision": "5a6551a77074394a82786d0f495c83caa04c058e",
"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": 427824992,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/bc4a984f24b2ba441d08996bf392bc410868ad8a68842025d4703f0d7f08b47a/diff:/var/lib/docker/overlay2/03fc01c5e987aa402bef9e19c58a3a6ed76eb58e38e1916d32513143d9fea82c/diff:/var/lib/docker/overlay2/2828fca58ed5936622510448bf544cb0ffeb93927ef04789c28183b7794a721f/diff:/var/lib/docker/overlay2/d8f70b7952d78322dc77ae01dc3f667d186cffa983c1117bb37da0ad7dcb2ee1/diff:/var/lib/docker/overlay2/c83b795736f7eeee8f163e378bdf0779374855977bc36a9894a75970e4cc7dc6/diff:/var/lib/docker/overlay2/53d8e9b5cefeeca5d77a161a5e19cdbf3a95199e85d0eab040fb3ee4a100dfe8/diff:/var/lib/docker/overlay2/4a47df405d665786e8858476e5e763e0622c628c1d544544b49232a9f0f41309/diff:/var/lib/docker/overlay2/d7c72921abfd93afb9a598213a5712bbe99fb67ccfa07a83566e3bb1c0d2145e/diff:/var/lib/docker/overlay2/4cfb2ff6eb670d08d805fcc326973c76acabc424b2f6ce5f1903149f34750452/diff",
"MergedDir": "/var/lib/docker/overlay2/bee0d56cc923055660c0c97393f3e31352ccc4b09ca9222890c227cd16fa08c8/merged",
"UpperDir": "/var/lib/docker/overlay2/bee0d56cc923055660c0c97393f3e31352ccc4b09ca9222890c227cd16fa08c8/diff",
"WorkDir": "/var/lib/docker/overlay2/bee0d56cc923055660c0c97393f3e31352ccc4b09ca9222890c227cd16fa08c8/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:2573e0d8158209ed54ab25c87bcdcb00bd3d2539246960a3d592a1c599d70465",
"sha256:55667061eec25d5a197442cf00f350415c6fa1fe8db3fd63e55fe4cde1802412",
"sha256:fefa2fcbd84beaf4406903e3147e32a3a8ef2b9011e3cf94ec7ffb2821b8a830",
"sha256:e54b2d26ef3612940ef33e7296a6201ff57a08d953671df0c23dd660a1ec5a5e",
"sha256:1ac1340293b9fd55906f30963ffb76bccde6308688b48e13f23634e70c7e323b",
"sha256:09fbffb856bfcc8be90a36c9e632ddc668c75d76305c1a7675c03b92e9c7ba24",
"sha256:df10e103811349dbecab8112151d3cc9f96d040ae7df1ada3e0ca35aa62fa0d5",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:aaa55e9326cb3bf78bc94c7b93ec6dc5b3c1adc81bc0fc65f1c74d9deec5ae95",
"sha256:6db23a30c65a2b9c1f619f40eac778a255536317ee16e0206d65b8f458aa88f1"
]
},
"Metadata": {
"LastTagTime": "2025-02-13T15:46:27.424311754+08:00"
}
}