镜像构建历史
# 2026-11-02 22:13:05 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["./entry-point.sh"]
# 2026-11-02 22:13:05 14.52MB 复制新文件或目录到容器中
COPY ./public /app/public # buildkit
# 2026-11-02 22:13:05 85.94MB 复制新文件或目录到容器中
COPY ./target/kuboard-server-v4.3.4.0.jar /app/kuboard-server.jar # buildkit
# 2026-11-02 22:13:05 950.00B 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.4.0 TARGETARCH=arm64 /bin/sh -c chmod +x entry-point.sh # buildkit
# 2026-11-02 22:13:04 950.00B 复制新文件或目录到容器中
COPY ./docker/entry-point.sh /app/entry-point.sh # buildkit
# 2026-11-02 22:13:04 0.00B 设置环境变量 STATIC_LOCATIONS
ENV STATIC_LOCATIONS=/app/public
# 2026-11-02 22:13:04 0.00B 设置环境变量 SERVER_PORT
ENV SERVER_PORT=80
# 2026-11-02 22:13:04 0.00B 设置环境变量 KUBOARD_SWAGGER_ENABLED
ENV KUBOARD_SWAGGER_ENABLED=true
# 2026-11-02 22:13:04 0.00B 设置环境变量 SPRING_PROFILES_ACTIVE
ENV SPRING_PROFILES_ACTIVE=production
# 2026-11-02 22:13:04 0.00B 声明容器运行时监听的端口
EXPOSE [8081/tcp]
# 2026-11-02 22:13:04 0.00B 声明容器运行时监听的端口
EXPOSE [80/tcp]
# 2026-11-02 22:13:04 57.28MB 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.4.0 TARGETARCH=arm64 /bin/sh -c curl -fsSL https://mirrors.huaweicloud.com/helm/v3.18.0/helm-v3.18.0-linux-${TARGETARCH:-amd64}.tar.gz -o /tmp/helm-3.18.tar.gz && mkdir -p /opt/helm/helm-3.18 && tar -xzf /tmp/helm-3.18.tar.gz -C /opt/helm/helm-3.18 --strip-components=1 linux-${TARGETARCH:-amd64}/helm && rm /tmp/helm-3.18.tar.gz && chmod +x /opt/helm/helm-3.18/helm && ln -sf /opt/helm/helm-3.18/helm /usr/local/bin/helm-3.18 # buildkit
# 2026-11-02 22:12:51 55.64MB 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.4.0 TARGETARCH=arm64 /bin/sh -c curl -fsSL https://mirrors.huaweicloud.com/helm/v3.16.0/helm-v3.16.0-linux-${TARGETARCH:-amd64}.tar.gz -o /tmp/helm-3.16.tar.gz && mkdir -p /opt/helm/helm-3.16 && tar -xzf /tmp/helm-3.16.tar.gz -C /opt/helm/helm-3.16 --strip-components=1 linux-${TARGETARCH:-amd64}/helm && rm /tmp/helm-3.16.tar.gz && chmod +x /opt/helm/helm-3.16/helm && ln -sf /opt/helm/helm-3.16/helm /usr/local/bin/helm-3.16 # buildkit
# 2026-11-02 22:12:37 49.09MB 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.4.0 TARGETARCH=arm64 /bin/sh -c curl -fsSL https://mirrors.huaweicloud.com/helm/v3.13.0/helm-v3.13.0-linux-${TARGETARCH:-amd64}.tar.gz -o /tmp/helm-3.13.tar.gz && mkdir -p /opt/helm/helm-3.13 && tar -xzf /tmp/helm-3.13.tar.gz -C /opt/helm/helm-3.13 --strip-components=1 linux-${TARGETARCH:-amd64}/helm && rm /tmp/helm-3.13.tar.gz && chmod +x /opt/helm/helm-3.13/helm && ln -sf /opt/helm/helm-3.13/helm /usr/local/bin/helm-3.13 # buildkit
# 2026-11-02 22:12:25 153.34KB 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.4.0 TARGETARCH=arm64 /bin/sh -c for a in "cn_emsign_ecc_root_ca__c3,o_emudhra_inc,ou_emsign_pki,c_us [jdk]" "cn_emsign_ecc_root_ca__g3,o_emudhra_technologies_limited,ou_emsign_pki,c_in [jdk]" "cn_emsign_root_ca__c1,o_emudhra_inc,ou_emsign_pki,c_us [jdk]" "cn_emsign_root_ca__g1,o_emudhra_technologies_limited,ou_emsign_pki,c_in [jdk]"; do keytool -delete -alias "$a" -cacerts -storepass changeit -noprompt 2>/dev/null || true; done; remaining="$(keytool -list -cacerts -storepass changeit 2>/dev/null | grep -ci emsign)"; echo "CVE-2026-91403: remaining emSign/eMudhra roots in cacerts = ${remaining} (expect 0)"; test "${remaining}" = "0" # buildkit
# 2026-11-02 22:11:51 6.59MB 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.4.0 TARGETARCH=arm64 /bin/sh -c apt-get update && apt-get install -y curl && apt-get clean && rm -rf /var/cache/apt/archives /var/lib/apt/lists/* # buildkit
# 2026-11-02 22:06:50 0.00B 设置环境变量 SERVER_PORT
ENV SERVER_PORT=8080
# 2026-11-02 22:06:50 0.00B 设置环境变量 TZ
ENV TZ=Asia/Shanghai
# 2026-11-02 22:06:50 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-11-02 22:06:50 0.00B 定义构建参数
ARG TARGETARCH=arm64
# 2026-11-02 22:06:50 0.00B 定义构建参数
ARG VITE_KUBOARD_VERSION=v4.3.4.0
# 2026-10-30 03:09:46 0.00B 设置默认要执行的命令
CMD ["jshell"]
# 2026-10-30 03:09:46 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/__cacert_entrypoint.sh"]
# 2026-10-30 03:09:46 5.98KB 复制新文件或目录到容器中
COPY --chmod=755 entrypoint.sh /__cacert_entrypoint.sh # buildkit
# 2026-10-30 03:09:46 0.00B 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; echo "Verifying install ..."; fileEncoding="$(echo 'System.out.println(System.getProperty("file.encoding"))' | jshell -s -)"; [ "$fileEncoding" = 'UTF-8' ]; rm -rf ~/.java; echo "javac --version"; javac --version; echo "java --version"; java --version; echo "Complete." # buildkit
# 2026-10-30 03:09:44 264.36MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; ARCH="$(dpkg --print-architecture)"; case "${ARCH}" in amd64) ESUM='68982529869257d0ee6b824ec5aa270ff8b118bb438670da0b97ebdab178d7fb'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.5%2B8/OpenJDK25U-jdk_x64_linux_hotspot_25.0.5_8.tar.gz'; ;; arm64) ESUM='bb5b2ded252f21c6090cf780b0a408ad0d83bbb557e702955643557f13231880'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.5%2B8/OpenJDK25U-jdk_aarch64_linux_hotspot_25.0.5_8.tar.gz'; ;; ppc64el) ESUM='47825886fd72e86c94e6fd1687a13bebb4ae729e24d2788be0d294589bf07297'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.5%2B8/OpenJDK25U-jdk_ppc64le_linux_hotspot_25.0.5_8.tar.gz'; ;; riscv64) ESUM='21d9ee84f64d845e7de888f86cc2abe3256c75853a0d5abe7fd42d6526374e90'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.5%2B8/OpenJDK25U-jdk_riscv64_linux_hotspot_25.0.5_8.tar.gz'; ;; s390x) ESUM='dfed6b7b428852ab1a3b9eb7734264f4d4cc163686e4136f93b9942f3d8f44cd'; BINARY_URL='https://github.com/adoptium/temurin25-binaries/releases/download/jdk-25.0.5%2B8/OpenJDK25U-jdk_s390x_linux_hotspot_25.0.5_8.tar.gz'; ;; *) echo "Unsupported arch: ${ARCH}"; exit 1; ;; esac; savedAptMark="$(apt-mark showmanual)"; apt-get update; apt-get install -y --no-install-recommends wget gnupg; 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 ${JAVA_HOME}/lib/src.zip; apt-mark auto '.*' > /dev/null; apt-mark manual $savedAptMark > /dev/null; apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false; rm -rf /var/lib/apt/lists/*; find "$JAVA_HOME/lib" -name '*.so' -exec dirname '{}' ';' | sort -u > /etc/ld.so.conf.d/docker-openjdk.conf; ldconfig; java -Xshare:dump; # buildkit
# 2026-10-30 03:09:23 0.00B 设置环境变量 JAVA_VERSION
ENV JAVA_VERSION=jdk-25.0.5+8
# 2026-10-30 03:09:23 57.13MB 执行命令并创建新的镜像层
RUN /bin/sh -c set -eux; apt-get update; DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends fontconfig ca-certificates p11-kit binutils 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-10-30 03:09:23 0.00B 设置环境变量 LANG LANGUAGE LC_ALL
ENV LANG=en_US.UTF-8 LANGUAGE=en_US:en LC_ALL=en_US.UTF-8
# 2026-10-30 03:09:23 0.00B 设置环境变量 PATH
ENV PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-10-30 03:09:23 0.00B 设置环境变量 JAVA_HOME
ENV JAVA_HOME=/opt/java/openjdk
# 2026-10-25 22:18:03 0.00B
/bin/sh -c #(nop) CMD ["/bin/bash"]
# 2026-10-25 22:18:03 100.81MB
/bin/sh -c #(nop) ADD file:2c901e275b6c59fa9cf0fb689a9665247088dba23d45178d9aa52ec3263de265 in /
# 2026-10-25 22:18:00 0.00B
/bin/sh -c #(nop) LABEL org.opencontainers.image.version=24.04
# 2026-10-25 22:18:00 0.00B
/bin/sh -c #(nop) ARG LAUNCHPAD_BUILD_ARCH
# 2026-10-25 22:18:00 0.00B
/bin/sh -c #(nop) ARG RELEASE
镜像信息
{
"Id": "sha256:807ffaae9f041d0275eec0afd98958eb065b4565f00eb9c3509b32113141edaf",
"RepoTags": [
"eipwork/kuboard:v4.3.4.0",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/eipwork/kuboard:v4.3.4.0-linuxarm64"
],
"RepoDigests": [
"eipwork/kuboard@sha256:e0f7501d8d73951a8cafe947fb42f450fa44218217bcf63e80bad7eb914e8343",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/eipwork/kuboard@sha256:bdb6512b39187147d424db5068d155ca57e62e1e0a82cea7d41a81d77e1ae1a1"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-11-02T22:13:05.635962138+08:00",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"80/tcp": {},
"8081/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-25.0.5+8",
"TZ=Asia/Shanghai",
"SERVER_PORT=80",
"SPRING_PROFILES_ACTIVE=production",
"KUBOARD_SWAGGER_ENABLED=true",
"STATIC_LOCATIONS=/app/public"
],
"Cmd": null,
"Image": "",
"Volumes": null,
"WorkingDir": "/app",
"Entrypoint": [
"./entry-point.sh"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.version": "24.04"
}
},
"Architecture": "arm64",
"Os": "linux",
"Size": 691510927,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/007107a42adad9f14f662156ac438c9bb427a52299d4b8db4d013cf4f21f586e/diff:/var/lib/docker/overlay2/62b83354078ccd5b938692de2f8dfbfe8ef8c294d537ddbcdfa5d4dc47b1c5fe/diff:/var/lib/docker/overlay2/567deccc7a165fc560343a26b148732f01fd81ee8e302e83f1d2362618612255/diff:/var/lib/docker/overlay2/e518f280489639ba76fd4e9a7fbbe0dffea701ef89ff69959222f02f28058c61/diff:/var/lib/docker/overlay2/6bfb296edbf9415c79417067875831b0f8af2c0e227337c995c921fd9cbeef78/diff:/var/lib/docker/overlay2/f9ba22b8d4aa7088812567ba6281ba06dacf4d3e5b3d3efc34e62bc98ed5a8dc/diff:/var/lib/docker/overlay2/3b8521c83da9f2e56f65b67dc88a1767903b75da3937bfa5daf93fd616f46bf8/diff:/var/lib/docker/overlay2/ad8a1dcaacfc6e9ddd1f79a756811070f4e4f1916c46e1b4beb0a4feaa1de64a/diff:/var/lib/docker/overlay2/e6dd2dce0e2d4f6106f3c8608154aa6bd18b34c79701840eafd546386a1f367a/diff:/var/lib/docker/overlay2/776dd024e3df3fd1f02f5bdf0b52af799e38085087db7019f36becf22704485f/diff:/var/lib/docker/overlay2/05a12c0164316507475425091d00884253244566b9f49b36a78baa07ee45bdea/diff:/var/lib/docker/overlay2/c1bd434267eefb24cc0ac2bbeefe5c67737898b1902f5c8811996091fe751044/diff:/var/lib/docker/overlay2/b5124e763954b1280dff17ee8a35262859fd01bc45f755f79f18a064c14294f2/diff:/var/lib/docker/overlay2/69c8dc33dd6145331060a283809f40a861ccf7771081848c6b617ab231b13c7f/diff",
"MergedDir": "/var/lib/docker/overlay2/f90f80908db976f492ad2c25caf9e95dfa22b34ec9110c004c5ca18029ee3bec/merged",
"UpperDir": "/var/lib/docker/overlay2/f90f80908db976f492ad2c25caf9e95dfa22b34ec9110c004c5ca18029ee3bec/diff",
"WorkDir": "/var/lib/docker/overlay2/f90f80908db976f492ad2c25caf9e95dfa22b34ec9110c004c5ca18029ee3bec/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:107ffca6dcd3fc87a7bed8c062f5ddc0d6a4b107205c82c0b49efdb7c1aff967",
"sha256:20a81569c7620825efd92e319987d336f374c483e7a02a585df8dc93c6e83c40",
"sha256:185827ae5a9f23672f1da3e86a2d0070d9de7cda04fa29548c5f4ea4ff272051",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:f5f51bbb3d1629fee44469b08d0da3e7307a2cdf7a5cb00abf395d489a3709c5",
"sha256:55527fafb3478c8795991d51f975dc6be023d51fc2a5ea497327004b4895f187",
"sha256:e7b5df93fe7e6d66e74ecfda5a8c85a88230eb795e4daaf62a59a217e0915573",
"sha256:a0747b5f6f650c1620cf5c44158f9bf5ddd409263d54142ac18f29c174d7e991",
"sha256:38ff3f81e1d68ecbc974b1710256f081d6ba2c5170e259a9bbc36cb5e4c17097",
"sha256:3526f0cbbdeeafdbeaf71c167bde51badd819f371585893602f968444101ffa8",
"sha256:ca352aae9737b25ec7dda5987ba806266e248e8e0dc0bde6ec46a4c726613903",
"sha256:ab83a3e0677a61879d943f7bb6bdb32b2d34d0992c4aa2981e05b307f869b5dc",
"sha256:964ea024414191a660b6c28426143df82329faaa04547d84fd8d42f715a6a55b",
"sha256:bbbcdadf93b40ba688dde62453307c8591795eb158d3d69d8e37f7ab6f84220e",
"sha256:f29f5d92f27fc7ee82c53a2bf58a89db6a6b32e474cd9ef7ec2350c7b71cdb69"
]
},
"Metadata": {
"LastTagTime": "2026-11-04T10:48:59.493280066+08:00"
}
}