docker.io/halohub/halo-pro:2.21.10 linux/amd64

docker.io/halohub/halo-pro:2.21.10 - 国内下载镜像源 浏览次数:11

这是一个Halo博客系统的专业版镜像,由halohub维护。它基于Docker容器技术,方便用户快速部署和运行Halo博客。

源镜像 docker.io/halohub/halo-pro:2.21.10
国内镜像 swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10
镜像ID sha256:1beeb7ce10174517b4e0eb8ca52e18a9ecd1fbf4f1d3ff19871cbf871e07d604
镜像TAG 2.21.10
大小 457.34MB
镜像源 docker.io
项目信息 Docker-Hub主页 🚀项目TAG 🚀
CMD
启动入口 sh -c java -Dreactor.schedulers.defaultBoundedElasticOnVirtualThreads=true ${JVM_OPTS} org.springframework.boot.loader.launch.JarLauncher ${0} ${@}
工作目录 /application
OS/平台 linux/amd64
浏览量 11 次
贡献者 17********9@163.com
镜像创建 2025-11-06T15:59:53.48596045Z
同步时间 2025-12-09 11:48
更新时间 2025-12-09 14:38
开放端口
8090/tcp
环境变量
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.9+10_openj9-0.56.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
镜像标签
johnniang <johnniang@foxmail.com>: maintainer 2025-11-06T15:59:02.762Z: org.opencontainers.image.created : org.opencontainers.image.description GPL-3.0: org.opencontainers.image.licenses ubuntu: org.opencontainers.image.ref.name 892705551493cd354a40316dd7f8c41a2d8835bf: org.opencontainers.image.revision https://github.com/lxware-dev/halo-pro: org.opencontainers.image.source halo-pro: org.opencontainers.image.title https://github.com/lxware-dev/halo-pro: org.opencontainers.image.url 2: org.opencontainers.image.version

Docker拉取命令

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10
docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10  docker.io/halohub/halo-pro:2.21.10

Containerd拉取命令

ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10
ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10  docker.io/halohub/halo-pro:2.21.10

Shell快速替换命令

sed -i 's#halohub/halo-pro:2.21.10#swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10#' deployment.yaml

Ansible快速分发-Docker

#ansible k8s -m shell -a 'docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10 && docker tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10  docker.io/halohub/halo-pro:2.21.10'

Ansible快速分发-Containerd

#ansible k8s -m shell -a 'ctr images pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10 && ctr images tag  swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10  docker.io/halohub/halo-pro:2.21.10'

镜像构建历史


# 2025-11-06 23:59:53  0.00B 配置容器启动时运行的命令
ENTRYPOINT ["sh" "-c" "java -Dreactor.schedulers.defaultBoundedElasticOnVirtualThreads=true ${JVM_OPTS} org.springframework.boot.loader.launch.JarLauncher ${0} ${@}"]
                        
# 2025-11-06 23:59:53  0.00B 声明容器运行时监听的端口
EXPOSE [8090/tcp]
                        
# 2025-11-06 23:59:53  47.00B 执行命令并创建新的镜像层
RUN /bin/sh -c ln -sf /usr/share/zoneinfo/$TZ /etc/localtime     && echo $TZ > /etc/timezone # buildkit
                        
# 2025-11-06 23:59:53  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-11-06 23:59:53  26.23MB 复制新文件或目录到容器中
COPY application/application/ ./ # buildkit
                        
# 2025-11-06 23:59:52  0.00B 复制新文件或目录到容器中
COPY application/snapshot-dependencies/ ./ # buildkit
                        
# 2025-11-06 23:59:52  399.36KB 复制新文件或目录到容器中
COPY application/spring-boot-loader/ ./ # buildkit
                        
# 2025-11-06 23:59:52  116.80MB 复制新文件或目录到容器中
COPY application/dependencies/ ./ # buildkit
                        
# 2025-11-06 23:59:45  0.00B 设置工作目录为/application
WORKDIR /application
                        
# 2025-11-06 23:59:45  0.00B 添加元数据标签
LABEL maintainer=johnniang <johnniang@foxmail.com>
                        
# 2025-11-05 03:13:00  17.83MB 执行命令并创建新的镜像层
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="2a955d97c6ed7d01fbf0392f3e2920129bcd541b259e894f441e411bac3bbe65576bcb3a314f06d624c9d70040828d26aa8a2c4f39d225d73f6a3db7523aa3ba";     TOMCAT_VERSION="9.0.111";     TOMCAT_FILENAME="apache-tomcat-${TOMCAT_VERSION}.tar.gz";     SUCCESS=;         mkdir -p "${DOWNLOAD_PATH_TOMCAT}" "${INSTALL_PATH_TOMCAT}";     for baseUrl in         https://dlcdn.apache.org/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin         https://archive.apache.org/dist/tomcat/tomcat-9/v${TOMCAT_VERSION}/bin     ; do         if curl -LfsSo "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz "${baseUrl}/${TOMCAT_FILENAME}" && [ -s "${DOWNLOAD_PATH_TOMCAT}"/tomcat.tar.gz ]; then             SUCCESS=1;             break;         fi;     done;     [ -n "$SUCCESS" ];     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-11-05 03:12:29  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-11-05 03:12:29  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-11-05 03:12:29  183.28MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux;     ARCH="$(dpkg --print-architecture)";     case "${ARCH}" in        aarch64|arm64)          ESUM='ac8c6c5aa3c345e14e82966972040b479d672c12e5cd0eaa52d8b38e6bdea40c';          BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.9%2B10_openj9-0.56.0/ibm-semeru-open-jre_aarch64_linux_21.0.9_10_openj9-0.56.0.tar.gz';          ;;        amd64|x86_64)          ESUM='6b3022f3d286b2fde9a964028da637a5ad9a93b1028741dcb72aa3bca49c83d2';          BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.9%2B10_openj9-0.56.0/ibm-semeru-open-jre_x64_linux_21.0.9_10_openj9-0.56.0.tar.gz';          ;;        ppc64el|ppc64le)          ESUM='876af8243616745796762539816cdb37c194e4b5942398277d6ccd35e96e3dcc';          BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.9%2B10_openj9-0.56.0/ibm-semeru-open-jre_ppc64le_linux_21.0.9_10_openj9-0.56.0.tar.gz';          ;;        s390x)          ESUM='e7828369bf76eb25426b807c039974f067888e1f67e9e461274407675946738e';          BINARY_URL='https://github.com/ibmruntimes/semeru21-binaries/releases/download/jdk-21.0.9%2B10_openj9-0.56.0/ibm-semeru-open-jre_s390x_linux_21.0.9_10_openj9-0.56.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-11-05 03:12:27  0.00B 设置环境变量 JAVA_VERSION
ENV JAVA_VERSION=jdk-21.0.9+10_openj9-0.56.0
                        
# 2025-11-05 03:12:27  34.69MB 执行命令并创建新的镜像层
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-11-05 03:12:27  0.00B 设置环境变量 LANG LANGUAGE LC_ALL
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
                        
# 2025-10-01 21:01:37  0.00B 
/bin/sh -c #(nop)  CMD ["/bin/bash"]
                        
# 2025-10-01 21:01:37  78.12MB 
/bin/sh -c #(nop) ADD file:249778a1782b02a1c2bcf9f292f5778d81442a53c3de1958d712f10baf7e0b60 in / 
                        
# 2025-10-01 21:01:35  0.00B 
/bin/sh -c #(nop)  LABEL org.opencontainers.image.version=24.04
                        
# 2025-10-01 21:01:35  0.00B 
/bin/sh -c #(nop)  LABEL org.opencontainers.image.ref.name=ubuntu
                        
# 2025-10-01 21:01:35  0.00B 
/bin/sh -c #(nop)  ARG LAUNCHPAD_BUILD_ARCH
                        
# 2025-10-01 21:01:35  0.00B 
/bin/sh -c #(nop)  ARG RELEASE
                        
                    

镜像信息

{
    "Id": "sha256:1beeb7ce10174517b4e0eb8ca52e18a9ecd1fbf4f1d3ff19871cbf871e07d604",
    "RepoTags": [
        "halohub/halo-pro:2.21.10",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro:2.21.10"
    ],
    "RepoDigests": [
        "halohub/halo-pro@sha256:9b70e3d0b0ea1b6c6aa10651826128c5f35039d6307d58690c2a10a9a0ebd7f1",
        "swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/halohub/halo-pro@sha256:88788295da8cd48fc89a759f603e86ad7db72294cbb4a9b65e2eab6304d1933c"
    ],
    "Parent": "",
    "Comment": "buildkit.dockerfile.v0",
    "Created": "2025-11-06T15:59:53.48596045Z",
    "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.9+10_openj9-0.56.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 -Dreactor.schedulers.defaultBoundedElasticOnVirtualThreads=true ${JVM_OPTS} org.springframework.boot.loader.launch.JarLauncher ${0} ${@}"
        ],
        "OnBuild": null,
        "Labels": {
            "maintainer": "johnniang \u003cjohnniang@foxmail.com\u003e",
            "org.opencontainers.image.created": "2025-11-06T15:59:02.762Z",
            "org.opencontainers.image.description": "",
            "org.opencontainers.image.licenses": "GPL-3.0",
            "org.opencontainers.image.ref.name": "ubuntu",
            "org.opencontainers.image.revision": "892705551493cd354a40316dd7f8c41a2d8835bf",
            "org.opencontainers.image.source": "https://github.com/lxware-dev/halo-pro",
            "org.opencontainers.image.title": "halo-pro",
            "org.opencontainers.image.url": "https://github.com/lxware-dev/halo-pro",
            "org.opencontainers.image.version": "2"
        }
    },
    "Architecture": "amd64",
    "Os": "linux",
    "Size": 457340069,
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/10677a6398fb2e21a0283e6f766123572980c30629595a0bdd139e771e712dce/diff:/var/lib/docker/overlay2/f965a5c18f17dfc176a907da5b486d1d30305618d31be89ba85bb6d37131b561/diff:/var/lib/docker/overlay2/bd6891827c7d11c064ed2837ca107ff023002146863032e0a57153b7455653a3/diff:/var/lib/docker/overlay2/1ee869581a57b13aa64b533cea19081126f0d20f3ef62c8898f2e902c0775f8d/diff:/var/lib/docker/overlay2/814cc9f8b96e6633f1dd46e421acafdcbc4a2706c8191a85b102ab729ec8b47c/diff:/var/lib/docker/overlay2/43d0d3c97f1d966614f74aba32b35ec44d391366a8427e24bd39209723a64a91/diff:/var/lib/docker/overlay2/3e5919a333bf8d5fc22aa41bbc54f4dc121589032e21f988f82735e90b92c9b4/diff:/var/lib/docker/overlay2/d0025479b0ed444ec3eeed9b7f5f60716d7a733feea9c7eb8694cf855fcf72d9/diff:/var/lib/docker/overlay2/7f48202ddfdf6c0b97c4c404acb4e0a1f17e7080e3e964f8a4763a6287f69bfa/diff",
            "MergedDir": "/var/lib/docker/overlay2/7dd45eed0dd7f04651310f6d326ee5a2a6e21b0b59853ab6029dd958e0821c75/merged",
            "UpperDir": "/var/lib/docker/overlay2/7dd45eed0dd7f04651310f6d326ee5a2a6e21b0b59853ab6029dd958e0821c75/diff",
            "WorkDir": "/var/lib/docker/overlay2/7dd45eed0dd7f04651310f6d326ee5a2a6e21b0b59853ab6029dd958e0821c75/work"
        },
        "Name": "overlay2"
    },
    "RootFS": {
        "Type": "layers",
        "Layers": [
            "sha256:073ec47a8c22dcaa4d6e5758799ccefe2f9bde943685830b1bf6fd2395f5eabc",
            "sha256:d812601b81a379dda64ee7e5193a0fa625353e77025d9af8b5a9f686302d3707",
            "sha256:e89eba526da8c187b09acec1a2aa8c5a6991fe5ea3dffbb861e0e5f3a4e81a83",
            "sha256:8344e1b1ecf62e6c2aca273aa45ec5e675c67c3f8dc9032a04d955b8cf5dc527",
            "sha256:cc903cefa74d6d90d903d9fab536870e920a15c1b21bdd7f2cd8c3a661c75b0c",
            "sha256:a060ba4006bda8842630c5ddfce3590aaf1dacba4c06a3f8b6552592a69ad48d",
            "sha256:ef157dcc687f492f0bda31444e8d276e9d6845bad7de9536ab601e664d3a4d34",
            "sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
            "sha256:561869def140aa45de84ca4f655a1ebc73e5deabbaede843465ff26a3e834672",
            "sha256:749b150a8795636b8e34b5d630893921d0ca6f5788e3236fa71a0d7ab15deb71"
        ]
    },
    "Metadata": {
        "LastTagTime": "2025-12-09T11:48:23.401590721+08:00"
    }
}

更多版本

docker.io/halohub/halo-pro:2.21.6

linux/amd64 docker.io452.06MB2025-08-18 10:14
197

docker.io/halohub/halo-pro:2.21.10

linux/amd64 docker.io457.34MB2025-12-09 11:48
10