镜像构建历史
# 2026-11-11 08:22:20 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["./entry-point.sh"]
# 2026-11-11 08:22:20 15.01MB 复制新文件或目录到容器中
COPY ./public /app/public # buildkit
# 2026-11-11 08:22:20 86.46MB 复制新文件或目录到容器中
COPY ./target/kuboard-server-v4.3.5.0.jar /app/kuboard-server.jar # buildkit
# 2026-11-11 08:22:20 950.00B 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.5.0 TARGETARCH=arm64 /bin/sh -c chmod +x entry-point.sh # buildkit
# 2026-11-11 08:22:20 950.00B 复制新文件或目录到容器中
COPY ./docker/entry-point.sh /app/entry-point.sh # buildkit
# 2026-11-11 08:22:20 0.00B 设置环境变量 STATIC_LOCATIONS
ENV STATIC_LOCATIONS=/app/public
# 2026-11-11 08:22:20 0.00B 设置环境变量 SERVER_PORT
ENV SERVER_PORT=80
# 2026-11-11 08:22:20 0.00B 设置环境变量 KUBOARD_SWAGGER_ENABLED
ENV KUBOARD_SWAGGER_ENABLED=true
# 2026-11-11 08:22:20 0.00B 设置环境变量 SPRING_PROFILES_ACTIVE
ENV SPRING_PROFILES_ACTIVE=production
# 2026-11-11 08:22:20 0.00B 声明容器运行时监听的端口
EXPOSE [8081/tcp]
# 2026-11-11 08:22:20 0.00B 声明容器运行时监听的端口
EXPOSE [80/tcp]
# 2026-11-11 08:22:20 57.28MB 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.5.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-11 08:22:12 55.64MB 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.5.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-11 08:22:04 49.09MB 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.5.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-11 08:21:56 153.34KB 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.5.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-11 08:21:35 6.59MB 执行命令并创建新的镜像层
RUN |2 VITE_KUBOARD_VERSION=v4.3.5.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.5.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:cc0d7726fa47222bcb340262a94bfe456d544f6b495db547ac044c4e9af85929",
"RepoTags": [
"eipwork/kuboard:v4.3.5.0",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/eipwork/kuboard:v4.3.5.0-linuxarm64"
],
"RepoDigests": [
"eipwork/kuboard@sha256:cc736ad456310ea3a4d975dcbef9ffb6240d73a81f42e29ef2c0f529a993e1d1",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/eipwork/kuboard@sha256:8fcc5a4c6544188bc37e657698decde8b1dddd8868179fddebc230eaefe6e3fc"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-11-11T08:22:20.609537159+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": 692523012,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/6a8872e1b29ad6c841421a0b97003985fc0cdf67f308f2618dce66b341464651/diff:/var/lib/docker/overlay2/66bd7a207a84fdbbaa2c9370754a72b95d785b40093b39de23b717bf587a6a17/diff:/var/lib/docker/overlay2/af816de77ce242bd377a08f3fb2733bf04aaf33fe6e6ad826029ba95d6f5822d/diff:/var/lib/docker/overlay2/89164f4b2ecd7e2083fdef1c7acc87c8d32c528b48d35a3fda97e3420db2940f/diff:/var/lib/docker/overlay2/6f41ddd98edc2128de133c80dba7d4bbde74831fcfc9fccb73fa94cde64c2852/diff:/var/lib/docker/overlay2/49a3f3f62fdb31ff829aae95d41fe7dfa8639dd1fdb71767d0866a9971d0e333/diff:/var/lib/docker/overlay2/5bdb9dbafa22962d2ab61063a37f582b8c55e562e001f68ab95cf0e6f2a552dd/diff:/var/lib/docker/overlay2/09850991e90b3225e9b6cea4859b2bc20f452eff458328bd506f3ea28b73932b/diff:/var/lib/docker/overlay2/09341786142f1e7ee33c8dcbee2986d3332ce195ae4727d18c86996d69885b7e/diff:/var/lib/docker/overlay2/0fa7b30589f7f3f0c86a7cbaaf8ba966eff6c548b58d0ca21a4af176660e5805/diff:/var/lib/docker/overlay2/10f72bf41341dd5f548b68cebd3fcbdade8d3acd6bdb81d1f28cf8c138c5e240/diff:/var/lib/docker/overlay2/fa890f71b73b651a7d2046963fd6b9f3483c0623b2b5545574ea621fece4d618/diff:/var/lib/docker/overlay2/d7a24bd7d9d36438c9401cf5035bc63c5364e7a21f13e031f0031bf7be735ac4/diff:/var/lib/docker/overlay2/1446c7fbfc412a98298299b7bac47ec754398f52b40a664ccccaf456be4fd267/diff",
"MergedDir": "/var/lib/docker/overlay2/a626a52feef6f68b57a3de07fc6e6fe03d9113c51398c3df1da51bb9c9eee3c3/merged",
"UpperDir": "/var/lib/docker/overlay2/a626a52feef6f68b57a3de07fc6e6fe03d9113c51398c3df1da51bb9c9eee3c3/diff",
"WorkDir": "/var/lib/docker/overlay2/a626a52feef6f68b57a3de07fc6e6fe03d9113c51398c3df1da51bb9c9eee3c3/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:107ffca6dcd3fc87a7bed8c062f5ddc0d6a4b107205c82c0b49efdb7c1aff967",
"sha256:20a81569c7620825efd92e319987d336f374c483e7a02a585df8dc93c6e83c40",
"sha256:185827ae5a9f23672f1da3e86a2d0070d9de7cda04fa29548c5f4ea4ff272051",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:f5f51bbb3d1629fee44469b08d0da3e7307a2cdf7a5cb00abf395d489a3709c5",
"sha256:55527fafb3478c8795991d51f975dc6be023d51fc2a5ea497327004b4895f187",
"sha256:a68147604f789ca1e37aba1d05e090fff08623efc81824981e666137dc5a16d1",
"sha256:3c884108e9e348abd0602ec212c6c3c0d8abd6952c3e87f46ad532968e5c2456",
"sha256:02cf0e03404dfa46810e4b4a15d787936c9fbcaf7a7584db5d36d958bd497738",
"sha256:ebec040859e6997b928c3cf242802b2c827258aa7663f511362d61574107d15c",
"sha256:338c95c5fdd9454ff12356a219e39f70ff43cbad8d6f0efb305cf96e57890de6",
"sha256:13ef55f6574aae0bfdca562573b5fde1bbfcc153d0c880f97207054e14ef4345",
"sha256:d0e6075506a045aec33fbd78955ea568a560d5226f36119b066ee67973839ba0",
"sha256:25114864b43df533f633ca4ea46f96543418e74fcc233bcabe05d900f2b09382",
"sha256:5bbdc68fad2b9e5982d3ce71ce055de062e4ed8e5c482971f294cb8744391303"
]
},
"Metadata": {
"LastTagTime": "2026-11-12T18:21:29.348919216+08:00"
}
}