镜像构建历史
# 2026-06-24 18:06:52 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["sh" "-c" "exec java ${JVM_OPTS} -XX:SharedArchiveFile=application.jsa -jar application.jar \"$@\"" "--"]
# 2026-06-24 18:06:52 0.00B 声明容器运行时监听的端口
EXPOSE [8090/tcp]
# 2026-06-24 18:06:52 98.84MB 执行命令并创建新的镜像层
RUN /bin/sh -c java -XX:ArchiveClassesAtExit=application.jsa -Dspring.context.exit=onRefresh -jar application.jar --halo.work-dir=/tmp/halo2 && rm -rf /tmp/halo2 # buildkit
# 2026-06-24 18:06:04 47.00B 执行命令并创建新的镜像层
RUN /bin/sh -c ln -sf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # buildkit
# 2026-06-24 18:06:04 0.00B 设置环境变量 JVM_OPTS HALO_WORK_DIR SPRING_CONFIG_LOCATION TZ
ENV JVM_OPTS= HALO_WORK_DIR=/root/.halo2 SPRING_CONFIG_LOCATION=optional:classpath:/;optional:file:/root/.halo2/ TZ=Asia/Shanghai
# 2026-06-24 18:06:04 17.31MB 复制新文件或目录到容器中
COPY /application/extracted/application/ ./ # buildkit
# 2026-06-24 18:06:04 0.00B 复制新文件或目录到容器中
COPY /application/extracted/snapshot-dependencies/ ./ # buildkit
# 2026-06-24 18:06:04 0.00B 复制新文件或目录到容器中
COPY /application/extracted/spring-boot-loader/ ./ # buildkit
# 2026-06-24 18:06:04 101.59MB 复制新文件或目录到容器中
COPY /application/extracted/dependencies/ ./ # buildkit
# 2026-06-24 18:05:58 0.00B 设置工作目录为/application
WORKDIR /application
# 2026-06-24 18:05:58 0.00B 添加元数据标签
LABEL maintainer=johnniang <johnniang@foxmail.com>
# 2026-06-19 09:11:35 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/__cacert_entrypoint.sh"]
# 2026-06-19 09:11:35 5.31KB 复制新文件或目录到容器中
COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit
# 2026-06-19 09:11:35 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; echo "Verifying install ..."; echo "java --version"; java --version; echo "Complete." # buildkit
# 2026-06-19 09:11:35 165.34MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) ESUM='e5038aae3ca9ff670bc696496b0728dbd23d280026bad30291cb919221ecfdcb'; BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jre_x64_linux_hotspot_21.0.11_10.tar.gz'; ;; arm64) ESUM='fa23d9d9945053e67bcc7638410eabf1e17a7672c7c95a24f70cd08b8407d36e'; BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jre_aarch64_linux_hotspot_21.0.11_10.tar.gz'; ;; ppc64el) ESUM='fefb53c4bd687e7a91a9a9809ec80e0862e829cd20513839ad1a9988ddc89482'; BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jre_ppc64le_linux_hotspot_21.0.11_10.tar.gz'; ;; riscv64) ESUM='f3d8843c5a1b77ded3353e0df85d803d84b9faa5ece20673564e7c47fc4591d9'; BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jre_riscv64_linux_hotspot_21.0.11_10.tar.gz'; ;; s390x) ESUM='45736e9e14d52619133900a077b4f72d1ebee0fd0bb053da0bca9dce9fc4d916'; BINARY_URL='https://github.com/adoptium/temurin21-binaries/releases/download/jdk-21.0.11%2B10/OpenJDK21U-jre_s390x_linux_hotspot_21.0.11_10.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; wget --progress=dot:giga -O /tmp/openjdk.tar.gz ${BINARY_URL}; wget --progress=dot:giga -O /tmp/openjdk.tar.gz.sig ${BINARY_URL}.sig; export GNUPGHOME="$(mktemp -d)"; gpg --batch --keyserver keyserver.ubuntu.com --recv-keys 3B04D753C9050D9A5D343F39843C48A565F8F04B; gpg --batch --verify /tmp/openjdk.tar.gz.sig /tmp/openjdk.tar.gz; rm -rf "${GNUPGHOME}" /tmp/openjdk.tar.gz.sig; echo "${ESUM} */tmp/openjdk.tar.gz" | sha256sum -c -; mkdir -p "$JAVA_HOME"; tar --extract --file /tmp/openjdk.tar.gz --directory "$JAVA_HOME" --strip-components 1 --no-same-owner ; rm -f /tmp/openjdk.tar.gz; find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; ldconfig; java -Xshare:dump; # buildkit
# 2026-06-19 09:11:31 0.00B 设置环境变量 JAVA_VERSION
ENV JAVA_VERSION=jdk-21.0.11+10
# 2026-06-19 09:11:31 52.60MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends curl wget gnupg fontconfig ca-certificates p11-kit tzdata locales ; echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen; locale-gen en_US.UTF-8; rm -rf /var/lib/apt/lists/* # buildkit
# 2026-06-19 09:11:31 0.00B 设置环境变量 LANG LANGUAGE LC_ALL
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 2026-06-19 09:11:31 0.00B 设置环境变量 PATH
ENV PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-06-19 09:11:31 0.00B 设置环境变量 JAVA_HOME
ENV JAVA_HOME=/opt/java/openjdk
# 2026-06-10 11:30:57 179.00B
umoci raw add-layer --image /home/buildd/rockcraft-ubuntu-79fcbede9d5522fcffb04b46daf93b5a/images/ubuntu:26.04 /home/buildd/rockcraft-ubuntu-79fcbede9d5522fcffb04b46daf93b5a/images/.temp_layer.control_data.9106.tar
# 2026-06-10 11:30:57 0.00B
umoci config --image /home/buildd/rockcraft-ubuntu-79fcbede9d5522fcffb04b46daf93b5a/images/ubuntu:26.04 --clear=manifest.annotations --manifest.annotation org.opencontainers.image.version=26.04 --manifest.annotation org.opencontainers.image.title=ubuntu --manifest.annotation org.opencontainers.image.created=2026-06-10T03:30:57.931695+00:00 --manifest.annotation org.opencontainers.image.description=The Ubuntu container image maintained by Canonical
Ubuntu is a Debian-based Linux operating system that runs from the desktop to the cloud, to all your internet connected things.
It is the world's most popular operating system across public clouds and OpenStack clouds.
It is the number one platform for containers; from Docker to Kubernetes to LXD, Ubuntu can run your containers at scale.
Fast, secure and simple, Ubuntu powers millions of PCs worldwide.
# 2026-06-10 11:30:57 0.00B
umoci config --image /home/buildd/rockcraft-ubuntu-79fcbede9d5522fcffb04b46daf93b5a/images/ubuntu:26.04 --clear=config.labels --config.label org.opencontainers.image.version=26.04 --config.label org.opencontainers.image.title=ubuntu --config.label org.opencontainers.image.created=2026-06-10T03:30:57.931695+00:00 --config.label org.opencontainers.image.description=The Ubuntu container image maintained by Canonical
Ubuntu is a Debian-based Linux operating system that runs from the desktop to the cloud, to all your internet connected things.
It is the world's most popular operating system across public clouds and OpenStack clouds.
It is the number one platform for containers; from Docker to Kubernetes to LXD, Ubuntu can run your containers at scale.
Fast, secure and simple, Ubuntu powers millions of PCs worldwide.
# 2026-06-10 11:30:57 0.00B
umoci config --image /home/buildd/rockcraft-ubuntu-79fcbede9d5522fcffb04b46daf93b5a/images/ubuntu:26.04 --config.env PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-06-10 11:30:57 0.00B
umoci config --image /home/buildd/rockcraft-ubuntu-79fcbede9d5522fcffb04b46daf93b5a/images/ubuntu:26.04 --clear=config.cmd --config.cmd /bin/bash
# 2026-06-10 11:30:57 0.00B
umoci config --image /home/buildd/rockcraft-ubuntu-79fcbede9d5522fcffb04b46daf93b5a/images/ubuntu:26.04 --clear=config.entrypoint --clear=config.cmd
# 2026-06-10 11:30:57 100.15MB
umoci raw add-layer --image /home/buildd/rockcraft-ubuntu-79fcbede9d5522fcffb04b46daf93b5a/images/ubuntu:rockcraft-base /home/buildd/rockcraft-ubuntu-79fcbede9d5522fcffb04b46daf93b5a/images/.temp_layer.9106.tar --tag 26.04
镜像信息
{
"Id": "sha256:3153995c53ee4b8984a09021bd4e8253a7e1f51c33b2f6a74249a40ac23b77f3",
"RepoTags": [
"halohub/halo:2.25.4",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo:2.25.4"
],
"RepoDigests": [
"halohub/halo@sha256:1299a0e7a849329a9f6a1a8498ec65a63dd6b70d9c74b829a2bbb5ba1ce547e6",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo@sha256:c161dd1ec5fec40aef517f21529adfffce1c53e35fc1467cf180602a67be6f0f"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-06-24T10:06:52.772116954Z",
"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",
"JAVA_HOME=/opt/java/openjdk",
"LANG=en_US.UTF-8",
"LANGUAGE=en_US:en",
"LC_ALL=en_US.UTF-8",
"JAVA_VERSION=jdk-21.0.11+10",
"JVM_OPTS=",
"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",
"exec java ${JVM_OPTS} -XX:SharedArchiveFile=application.jsa -jar application.jar \"$@\"",
"--"
],
"OnBuild": null,
"Labels": {
"maintainer": "johnniang \u003cjohnniang@foxmail.com\u003e",
"org.opencontainers.image.created": "2026-06-24T10:05:29.987Z",
"org.opencontainers.image.description": "Halo 是一款强大易用的开源建站工具,从个人博客、知识库,到企业官网、在线商城,Halo 都能助您轻松实现,一站式满足您的多样化建站需求。",
"org.opencontainers.image.licenses": "GPL-3.0",
"org.opencontainers.image.revision": "8206752d23e3499154e7170cadafaaf62bfb63ab",
"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": 535845469,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/5af8154e96637f321f255ad86f3048ad2c7cd97db41d6ddc4dd45c52dadf2ce8/diff:/var/lib/docker/overlay2/401e2b395da8ab703422d030c3f8415d8eac25f515ef3ee47371e4650b034724/diff:/var/lib/docker/overlay2/bd02026b8ee4055fc0059f975d2e7c0c70b7589c2598267f820f65b3db7c01fe/diff:/var/lib/docker/overlay2/66e14987eff72b400de5c7d031fe2f5465deb4687cf1f29c27277e979027eff4/diff:/var/lib/docker/overlay2/1d71bf2ae7bfb337c6cd168d26e24e3a6e7ce8b24941ec48e62acdd26ae50c7c/diff:/var/lib/docker/overlay2/54fe1e54b9ba7a0c23a7ab40c146ac6042d418f58d7c7229e4aae950c9bc5c07/diff:/var/lib/docker/overlay2/ea261b42d543377ef20f5fe8d3500ff443c2f38e57443b1a0eb9875039fbf94f/diff:/var/lib/docker/overlay2/e07b86841c0e1f39861909aeca5df4697eea0940aa86221c1861b549bf1e3d84/diff:/var/lib/docker/overlay2/5f9cdc7ebd8af8ebf0ebd781fa10d252f9c42529717d7e2f4dbf467f84fbb6e3/diff:/var/lib/docker/overlay2/656c757c8e88d0cdf3d8e56e46c97f59e39128110dea59da17f4886f8187b680/diff:/var/lib/docker/overlay2/cd2caef64eaa6dbc3ec30fb76187670e8d0165b55215f202728c7eeeeabdb178/diff:/var/lib/docker/overlay2/45c5f66598a4bdc6c86609d10302c7339656b5dceef80ab99433471e04a08651/diff",
"MergedDir": "/var/lib/docker/overlay2/09fd37b01d021657f7f778003bbe1d75be4e6886f80a1ba2ae5e42eb064703b3/merged",
"UpperDir": "/var/lib/docker/overlay2/09fd37b01d021657f7f778003bbe1d75be4e6886f80a1ba2ae5e42eb064703b3/diff",
"WorkDir": "/var/lib/docker/overlay2/09fd37b01d021657f7f778003bbe1d75be4e6886f80a1ba2ae5e42eb064703b3/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:e8c084c1b320c172e8be941d735d77298e49986014213a8282c9b533ee216a61",
"sha256:ab0ae19b58df847c6f0e4beb31f759a4dac2cc42288a6bda6f467eea4584c541",
"sha256:77107bf75dfc7c9b428f208c87edffd403e3d79463d5d89ee1015bfb9f6d2fa0",
"sha256:22650f99e7b3bc8ac9c808c9ee14001c751ad9f79a5fd44f7327648dd7e57b91",
"sha256:0aead834ae951d6d992bc1606e410c5c7c5cc6c3b11ff6268b2b4eced4f93ead",
"sha256:6c8e7b25e751ce9b5e0137c18b275623290da081b9ef3ac796c1425e1aad7531",
"sha256:1f1db1e8c943265e03942c053703e02bd68d9b4f374b3dbeeb93749f5fb434e6",
"sha256:7f02195a764ce5b33bf172f4ff50a90d01ddbd65b0569d433eea40836c9d4e3e",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:3ee01af2e6a697a8ec04684b9fbec287721d24ee2fec88c0120c135a51172312",
"sha256:029734288c1f1a24f92ccd07089ac0090f451b778a2a9b78c01e07ceed22ee3d",
"sha256:4f4290836de3823be2b60827e9c97eb97cdd095a3a0b8fb78663ad2424d1eac2"
]
},
"Metadata": {
"LastTagTime": "2026-06-24T18:35:09.36231404+08:00"
}
}