镜像构建历史
# 2026-10-13 03:35:11 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["tini" "--" "/opt/agent-canvas/entrypoint.sh"]
# 2026-10-13 03:35:11 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2026-10-13 03:35:11 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/home/openhands/.openhands /projects]
# 2026-10-13 03:35:11 0.00B 指定运行容器时使用的用户
USER openhands
# 2026-10-13 03:35:11 0.00B 执行命令并创建新的镜像层
RUN |9 AUTOMATION_VERSION=1.19.3 AGENT_SERVER_VERSION=1.54.0 AGENT_SERVER_SDK_GIT_REF= OPENHANDS_BUILD_GIT_SHA=f07aebdf5cdd71f4a05ebcf30f8bef5e4e3b70b9 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.27.1 VITE_BASE_PATH=/canvas VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK AGENT_CANVAS_VERSION=1.27.1 DEBIAN_SNAPSHOT=20260930T000000Z /bin/sh -c mkdir -p /home/openhands/.openhands/agent-canvas/conversations /home/openhands/.openhands/agent-canvas/bash_events /home/openhands/.openhands/automation /projects && chown -R openhands:openhands /home/openhands/.openhands /projects # buildkit
# 2026-10-13 03:35:11 26.51KB 执行命令并创建新的镜像层
RUN |9 AUTOMATION_VERSION=1.19.3 AGENT_SERVER_VERSION=1.54.0 AGENT_SERVER_SDK_GIT_REF= OPENHANDS_BUILD_GIT_SHA=f07aebdf5cdd71f4a05ebcf30f8bef5e4e3b70b9 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.27.1 VITE_BASE_PATH=/canvas VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK AGENT_CANVAS_VERSION=1.27.1 DEBIAN_SNAPSHOT=20260930T000000Z /bin/sh -c chmod +x /opt/agent-canvas/entrypoint.sh # buildkit
# 2026-10-13 03:35:11 26.51KB 复制新文件或目录到容器中
COPY docker/entrypoint.sh /opt/agent-canvas/entrypoint.sh # buildkit
# 2026-10-13 03:35:11 460.00B 复制新文件或目录到容器中
COPY /tmp/defaults.env /opt/agent-canvas/defaults.env # buildkit
# 2026-10-13 03:35:11 6.49KB 复制新文件或目录到容器中
COPY tools/ /opt/agent-canvas/tools/ # buildkit
# 2026-10-13 03:35:11 8.56KB 复制新文件或目录到容器中
COPY scripts/runtime-services-info.mjs /opt/agent-canvas/runtime-services-info.mjs # buildkit
# 2026-10-13 03:35:11 7.46KB 复制新文件或目录到容器中
COPY /build/node_modules/totalist /opt/agent-canvas/node_modules/totalist # buildkit
# 2026-10-13 03:35:11 33.01KB 复制新文件或目录到容器中
COPY /build/node_modules/mrmime /opt/agent-canvas/node_modules/mrmime # buildkit
# 2026-10-13 03:35:11 4.82KB 复制新文件或目录到容器中
COPY /build/node_modules/@polka /opt/agent-canvas/node_modules/@polka # buildkit
# 2026-10-13 03:35:11 21.88KB 复制新文件或目录到容器中
COPY /build/node_modules/sirv /opt/agent-canvas/node_modules/sirv # buildkit
# 2026-10-13 03:35:11 60.93KB 复制新文件或目录到容器中
COPY /build/node_modules/httpxy /opt/agent-canvas/node_modules/httpxy # buildkit
# 2026-10-13 03:35:11 151.09KB 复制新文件或目录到容器中
COPY /build/node_modules/ws /opt/agent-canvas/node_modules/ws # buildkit
# 2026-10-13 03:35:11 8.97KB 复制新文件或目录到容器中
COPY scripts/tunnel-registry.mjs /opt/agent-canvas/tunnel-registry.mjs # buildkit
# 2026-10-13 03:35:11 10.17KB 复制新文件或目录到容器中
COPY scripts/tunnel-client.mjs /opt/agent-canvas/tunnel-client.mjs # buildkit
# 2026-10-13 03:35:11 3.18KB 复制新文件或目录到容器中
COPY scripts/mars-session.mjs /opt/agent-canvas/mars-session.mjs # buildkit
# 2026-10-13 03:35:11 8.67KB 复制新文件或目录到容器中
COPY scripts/mars-oauth.mjs /opt/agent-canvas/mars-oauth.mjs # buildkit
# 2026-10-13 03:35:11 7.08KB 复制新文件或目录到容器中
COPY scripts/mars-credentials.mjs /opt/agent-canvas/mars-credentials.mjs # buildkit
# 2026-10-13 03:35:11 11.89KB 复制新文件或目录到容器中
COPY scripts/mars-api.mjs /opt/agent-canvas/mars-api.mjs # buildkit
# 2026-10-13 03:35:11 14.25KB 复制新文件或目录到容器中
COPY scripts/mars-tunnel-bridge.mjs /opt/agent-canvas/mars-tunnel-bridge.mjs # buildkit
# 2026-10-13 03:35:11 19.27KB 复制新文件或目录到容器中
COPY scripts/mars-web-bridge.mjs /opt/agent-canvas/mars-web-bridge.mjs # buildkit
# 2026-10-13 03:35:11 1.02KB 复制新文件或目录到容器中
COPY scripts/http-body.mjs /opt/agent-canvas/http-body.mjs # buildkit
# 2026-10-13 03:35:11 12.44KB 复制新文件或目录到容器中
COPY scripts/proxy-utils.mjs /opt/agent-canvas/proxy-utils.mjs # buildkit
# 2026-10-13 03:35:11 2.45KB 复制新文件或目录到容器中
COPY scripts/bind-host.mjs /opt/agent-canvas/bind-host.mjs # buildkit
# 2026-10-13 03:35:11 29.46KB 复制新文件或目录到容器中
COPY scripts/static-server.mjs /opt/agent-canvas/static-server.mjs # buildkit
# 2026-10-13 03:35:11 10.33MB 复制新文件或目录到容器中
COPY /build/build /opt/agent-canvas/frontend # buildkit
# 2026-10-13 03:35:06 0.00B 执行命令并创建新的镜像层
RUN |9 AUTOMATION_VERSION=1.19.3 AGENT_SERVER_VERSION=1.54.0 AGENT_SERVER_SDK_GIT_REF= OPENHANDS_BUILD_GIT_SHA=f07aebdf5cdd71f4a05ebcf30f8bef5e4e3b70b9 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.27.1 VITE_BASE_PATH=/canvas VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK AGENT_CANVAS_VERSION=1.27.1 DEBIAN_SNAPSHOT=20260930T000000Z /bin/sh -c if [ -n "${AGENT_SERVER_SDK_GIT_REF}" ]; then BASE_GIT_URL="git+https://github.com/OpenHands/software-agent-sdk@${AGENT_SERVER_SDK_GIT_REF}" && uv pip install --system --force-reinstall "${BASE_GIT_URL}#subdirectory=openhands-sdk" "${BASE_GIT_URL}#subdirectory=openhands-tools" "${BASE_GIT_URL}#subdirectory=openhands-workspace"; fi # buildkit
# 2026-10-13 03:35:05 595.95MB 执行命令并创建新的镜像层
RUN |9 AUTOMATION_VERSION=1.19.3 AGENT_SERVER_VERSION=1.54.0 AGENT_SERVER_SDK_GIT_REF= OPENHANDS_BUILD_GIT_SHA=f07aebdf5cdd71f4a05ebcf30f8bef5e4e3b70b9 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.27.1 VITE_BASE_PATH=/canvas VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK AGENT_CANVAS_VERSION=1.27.1 DEBIAN_SNAPSHOT=20260930T000000Z /bin/sh -c uv pip install --system "openhands-automation==${AUTOMATION_VERSION}" "openhands-tools==${AGENT_SERVER_VERSION}" 2>/dev/null || pip install --no-cache-dir "openhands-automation==${AUTOMATION_VERSION}" "openhands-tools==${AGENT_SERVER_VERSION}" # buildkit
# 2026-10-13 03:34:56 397.00B 执行命令并创建新的镜像层
RUN |9 AUTOMATION_VERSION=1.19.3 AGENT_SERVER_VERSION=1.54.0 AGENT_SERVER_SDK_GIT_REF= OPENHANDS_BUILD_GIT_SHA=f07aebdf5cdd71f4a05ebcf30f8bef5e4e3b70b9 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.27.1 VITE_BASE_PATH=/canvas VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK AGENT_CANVAS_VERSION=1.27.1 DEBIAN_SNAPSHOT=20260930T000000Z /bin/sh -c if command -v apt-get >/dev/null 2>&1; then printf '%s\n' 'Types: deb' "URIs: http://snapshot.debian.org/archive/debian/${DEBIAN_SNAPSHOT}/" 'Suites: trixie' 'Components: main' 'Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg' 'Check-Valid-Until: no' '' 'Types: deb' "URIs: http://snapshot.debian.org/archive/debian-security/${DEBIAN_SNAPSHOT}/" 'Suites: trixie-security' 'Components: main' 'Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg' 'Check-Valid-Until: no' > /etc/apt/sources.list.d/debian.sources && apt-get update && apt-get upgrade -y --no-install-recommends && rm -rf /var/lib/apt/lists/*; fi # buildkit
# 2026-10-13 03:34:56 0.00B 定义构建参数
ARG DEBIAN_SNAPSHOT=20260930T000000Z
# 2026-10-13 03:34:56 0.00B 指定运行容器时使用的用户
USER root
# 2026-10-13 03:34:56 0.00B 设置环境变量 VITE_POSTHOG_API_KEY
ENV VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK
# 2026-10-13 03:34:56 0.00B 设置环境变量 AGENT_CANVAS_BASE_PATH
ENV AGENT_CANVAS_BASE_PATH=/canvas
# 2026-10-13 03:34:56 0.00B 设置环境变量 AGENT_CANVAS_BUILD_GIT_REF
ENV AGENT_CANVAS_BUILD_GIT_REF=refs/tags/v1.27.1
# 2026-10-13 03:34:56 0.00B 设置环境变量 AGENT_CANVAS_BUILD_GIT_SHA
ENV AGENT_CANVAS_BUILD_GIT_SHA=f07aebdf5cdd71f4a05ebcf30f8bef5e4e3b70b9
# 2026-10-13 03:34:56 0.00B 添加元数据标签
LABEL org.opencontainers.image.revision=f07aebdf5cdd71f4a05ebcf30f8bef5e4e3b70b9
# 2026-10-13 03:34:56 0.00B 添加元数据标签
LABEL org.opencontainers.image.version=1.27.1
# 2026-10-13 03:34:56 0.00B 添加元数据标签
LABEL org.opencontainers.image.source=https://github.com/OpenHands/OpenHands
# 2026-10-13 03:34:56 0.00B 添加元数据标签
LABEL org.opencontainers.image.description=All-in-one agent-canvas: Agent Server + Automation + Frontend
# 2026-10-13 03:34:56 0.00B 添加元数据标签
LABEL org.opencontainers.image.title=agent-canvas
# 2026-10-13 03:34:56 0.00B 定义构建参数
ARG AGENT_CANVAS_VERSION=dev
# 2026-10-13 03:34:56 0.00B 定义构建参数
ARG VITE_POSTHOG_API_KEY=
# 2026-10-13 03:34:56 0.00B 定义构建参数
ARG VITE_BASE_PATH=/canvas
# 2026-10-13 03:34:56 0.00B 定义构建参数
ARG OPENHANDS_BUILD_GIT_REF=unknown
# 2026-10-13 03:34:56 0.00B 定义构建参数
ARG OPENHANDS_BUILD_GIT_SHA=unknown
# 2026-10-13 03:34:56 0.00B 定义构建参数
ARG AGENT_SERVER_SDK_GIT_REF=
# 2026-10-13 03:34:56 0.00B 定义构建参数
ARG AGENT_SERVER_VERSION
# 2026-10-13 03:34:56 0.00B 定义构建参数
ARG AUTOMATION_VERSION
# 2026-10-10 02:41:42 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["tini" "--" "/usr/local/bin/openhands-agent-server"]
# 2026-10-10 02:41:42 0.00B 设置环境变量 LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:/usr/lib:/usr/lib/x86_64-linux-gnu:
# 2026-10-10 02:41:42 0.00B 执行命令并创建新的镜像层
RUN |1 USERNAME=openhands /bin/sh -c chmod +x /usr/local/bin/openhands-agent-server # buildkit
# 2026-10-10 02:41:41 113.39MB 复制新文件或目录到容器中
COPY --chown=openhands:openhands /agent-server/dist/openhands-agent-server /usr/local/bin/openhands-agent-server # buildkit
# 2026-10-10 02:39:18 0.00B 定义构建参数
ARG USERNAME
# 2026-10-10 02:39:18 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2026-10-10 02:39:18 0.00B 设置环境变量 OH_ACP_SKILL_SOURCING
ENV OH_ACP_SKILL_SOURCING=openhands_managed
# 2026-10-10 02:39:18 0.00B 设置环境变量 LOG_JSON
ENV LOG_JSON=true
# 2026-10-10 02:39:18 0.00B 设置工作目录为/
WORKDIR /
# 2026-10-10 02:39:18 0.00B 指定运行容器时使用的用户
USER openhands
# 2026-10-10 02:39:18 687.49MB 执行命令并创建新的镜像层
RUN |4 USERNAME=openhands INSTALL_CAPABILITIES=vscode,browser,docker RELEASE_TAG=openvscode-server-v1.109.5 RELEASE_ORG=gitpod-io /bin/sh -c set -eux; case ",$INSTALL_CAPABILITIES," in *,browser,*) apt-get update; apt-get install -y --no-install-recommends "$(if grep -q "ubuntu" /etc/os-release; then echo "chromium-browser"; else echo "chromium"; fi)"; apt-get clean; rm -rf /var/lib/apt/lists/*; ;; esac # buildkit
# 2026-10-10 02:38:57 0.00B 设置环境变量 CHROME_BIN PUPPETEER_EXECUTABLE_PATH CHROMIUM_FLAGS
ENV CHROME_BIN=/usr/bin/chromium PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium CHROMIUM_FLAGS=--no-sandbox --disable-dev-shm-usage --disable-gpu
# 2026-10-10 02:38:57 42.79MB 执行命令并创建新的镜像层
RUN |4 USERNAME=openhands INSTALL_CAPABILITIES=vscode,browser,docker RELEASE_TAG=openvscode-server-v1.109.5 RELEASE_ORG=gitpod-io /bin/sh -c set -eux; mkdir -p -m 755 /etc/apt/keyrings; wget -nv -O /etc/apt/keyrings/githubcli-archive-keyring.gpg https://cli.github.com/packages/githubcli-archive-keyring.gpg; chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg; echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" > /etc/apt/sources.list.d/github-cli.list; apt-get update; apt-get install -y gh; apt-get clean; rm -rf /var/lib/apt/lists/* # buildkit
# 2026-10-10 02:38:54 414.46MB 执行命令并创建新的镜像层
RUN |4 USERNAME=openhands INSTALL_CAPABILITIES=vscode,browser,docker RELEASE_TAG=openvscode-server-v1.109.5 RELEASE_ORG=gitpod-io /bin/sh -c set -eux; case ",$INSTALL_CAPABILITIES," in *,docker,*) ;; *) echo "INSTALL_CAPABILITIES excludes docker; skipping Docker Engine"; exit 0;; esac; if grep -q "ubuntu" /etc/os-release; then install -m 0755 -d /etc/apt/keyrings; curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc; chmod a+r /etc/apt/keyrings/docker.asc; echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null; else install -m 0755 -d /etc/apt/keyrings; curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc; chmod a+r /etc/apt/keyrings/docker.asc; echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian bookworm stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null; fi; apt-get update; apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; apt-get clean; rm -rf /var/lib/apt/lists/*; mkdir -p /etc/docker; echo '{"mtu": 1450}' > /etc/docker/daemon.json # buildkit
# 2026-10-10 02:38:43 1.15KB 执行命令并创建新的镜像层
RUN |4 USERNAME=openhands INSTALL_CAPABILITIES=vscode,browser,docker RELEASE_TAG=openvscode-server-v1.109.5 RELEASE_ORG=gitpod-io /bin/sh -c set -eux; case ",$INSTALL_CAPABILITIES," in *,vscode,*) ;; *) exit 0;; esac; mkdir -p ${OPENVSCODE_SERVER_ROOT}/extensions; cp -r /tmp/vscode_extensions/. ${OPENVSCODE_SERVER_ROOT}/extensions/; chown -R ${USERNAME}:${USERNAME} ${OPENVSCODE_SERVER_ROOT}/extensions # buildkit
# 2026-10-10 02:38:42 243.76MB 执行命令并创建新的镜像层
RUN |4 USERNAME=openhands INSTALL_CAPABILITIES=vscode,browser,docker RELEASE_TAG=openvscode-server-v1.109.5 RELEASE_ORG=gitpod-io /bin/sh -c set -eux; case ",$INSTALL_CAPABILITIES," in *,vscode,*) ;; *) echo "INSTALL_CAPABILITIES excludes vscode; skipping OpenVSCode Server"; exit 0;; esac; mkdir -p $(dirname ${OPENVSCODE_SERVER_ROOT}); arch=$(uname -m); if [ "${arch}" = "x86_64" ]; then arch="x64"; elif [ "${arch}" = "aarch64" ]; then arch="arm64"; elif [ "${arch}" = "armv7l" ]; then arch="armhf"; fi; wget https://github.com/${RELEASE_ORG}/openvscode-server/releases/download/${RELEASE_TAG}/${RELEASE_TAG}-linux-${arch}.tar.gz; tar -xzf ${RELEASE_TAG}-linux-${arch}.tar.gz; if [ -d "${OPENVSCODE_SERVER_ROOT}" ]; then rm -rf "${OPENVSCODE_SERVER_ROOT}"; fi; mv ${RELEASE_TAG}-linux-${arch} ${OPENVSCODE_SERVER_ROOT}; cp ${OPENVSCODE_SERVER_ROOT}/bin/remote-cli/openvscode-server ${OPENVSCODE_SERVER_ROOT}/bin/remote-cli/code; rm -f ${RELEASE_TAG}-linux-${arch}.tar.gz; chown -R ${USERNAME}:${USERNAME} ${OPENVSCODE_SERVER_ROOT} # buildkit
# 2026-10-10 02:38:38 0.00B 定义构建参数
ARG RELEASE_ORG=gitpod-io
# 2026-10-10 02:38:38 0.00B 定义构建参数
ARG RELEASE_TAG=openvscode-server-v1.109.5
# 2026-10-10 02:38:38 0.00B 设置环境变量 EDITOR VISUAL GIT_EDITOR OPENVSCODE_SERVER_ROOT
ENV EDITOR=code VISUAL=code GIT_EDITOR=code --wait OPENVSCODE_SERVER_ROOT=/openhands/.openvscode-server
# 2026-10-10 02:38:38 0.00B 执行命令并创建新的镜像层
RUN |2 USERNAME=openhands INSTALL_CAPABILITIES=vscode,browser,docker /bin/sh -c set -eux; for capability in $(echo "$INSTALL_CAPABILITIES" | tr ',' ' '); do case "$capability" in vscode|browser|docker) ;; *) echo "Unknown capability '$capability' in INSTALL_CAPABILITIES" "(expected one of: vscode, browser, docker)" >&2; exit 1;; esac; done # buildkit
# 2026-10-10 02:38:38 55.19MB 复制新文件或目录到容器中
COPY /uv /uvx /bin/ # buildkit
# 2026-10-10 02:38:38 270.81MB 执行命令并创建新的镜像层
RUN |2 USERNAME=openhands INSTALL_CAPABILITIES=vscode,browser,docker /bin/sh -c set -eux; if command -v apt-get >/dev/null 2>&1; then apt-get -o Acquire::Retries=5 update; apt-get -o Acquire::Retries=5 install -y --no-install-recommends apt-transport-https apt-utils build-essential coreutils curl findutils gnupg grep jq lsb-release procps sed sudo tar util-linux wget xz-utils; rm -rf /var/lib/apt/lists/*; elif command -v apk >/dev/null 2>&1; then apk add --no-cache build-base coreutils curl findutils gnupg grep jq procps sudo tar util-linux wget xz; elif command -v microdnf >/dev/null 2>&1; then microdnf install -y coreutils curl findutils gcc gcc-c++ gnupg2 grep jq make procps-ng sed sudo tar util-linux wget xz; microdnf clean all; elif command -v dnf >/dev/null 2>&1; then dnf install -y coreutils curl findutils gcc gcc-c++ gnupg2 grep jq make procps-ng sed sudo tar util-linux wget xz; dnf clean all; elif command -v yum >/dev/null 2>&1; then yum install -y coreutils curl findutils gcc gcc-c++ gnupg2 grep jq make procps-ng sed sudo tar util-linux wget xz; yum clean all; elif command -v zypper >/dev/null 2>&1; then zypper --non-interactive install --no-recommends coreutils curl findutils gcc gcc-c++ gpg2 grep jq make procps sed sudo tar util-linux wget xz; zypper clean --all; fi; usermod -aG sudo "${USERNAME}" 2>/dev/null || true; echo "${USERNAME} ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers # buildkit
# 2026-10-10 02:38:28 0.00B 指定运行容器时使用的用户
USER root
# 2026-10-10 02:38:28 0.00B 定义构建参数
ARG INSTALL_CAPABILITIES
# 2026-10-10 02:38:28 0.00B 定义构建参数
ARG USERNAME
# 2026-10-10 02:38:28 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2026-10-10 02:38:28 0.00B 设置环境变量 OH_ACP_SKILL_SOURCING
ENV OH_ACP_SKILL_SOURCING=openhands_managed
# 2026-10-10 02:38:28 0.00B 设置环境变量 LOG_JSON
ENV LOG_JSON=true
# 2026-10-10 02:38:28 0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
# 2026-10-10 02:38:28 0.00B 设置环境变量 LC_ALL
ENV LC_ALL=C.UTF-8
# 2026-10-10 02:38:28 0.00B 设置工作目录为/
WORKDIR /
# 2026-10-10 02:38:28 0.00B 指定运行容器时使用的用户
USER openhands
# 2026-10-10 02:38:28 49.00B 执行命令并创建新的镜像层
RUN |7 USERNAME=openhands UID=10001 GID=10001 PORT=8000 ENABLE_VSCODE=true OPENHANDS_BUILD_GIT_SHA=1d471742ea7be017d013eaaa3080f5d28d5490cb OPENHANDS_BUILD_GIT_REF=refs/tags/v1.54.0 /bin/sh -c mkdir -p /etc/claude-code && echo '{"permissions":{"allow":["Edit","Read","Bash"]}}' > /etc/claude-code/managed-settings.json # buildkit
# 2026-10-10 02:38:28 0.00B 执行命令并创建新的镜像层
RUN |7 USERNAME=openhands UID=10001 GID=10001 PORT=8000 ENABLE_VSCODE=true OPENHANDS_BUILD_GIT_SHA=1d471742ea7be017d013eaaa3080f5d28d5490cb OPENHANDS_BUILD_GIT_REF=refs/tags/v1.54.0 /bin/sh -c if ! "$ACP_NODE_DIR/bin/node" --version >/dev/null 2>&1; then echo "Warning: ACP Node 24 runtime is not compatible with this base image (likely older glibc or musl libc); ACP agents will not be available" >&2; if [ -f "$ACP_NODE_DIR/acp-wrappers.txt" ]; then while read -r bin; do rm -f "/usr/local/bin/$bin"; done < "$ACP_NODE_DIR/acp-wrappers.txt"; fi; rm -rf "$ACP_NODE_DIR"/*; fi # buildkit
# 2026-10-10 02:38:27 223.00B 复制新文件或目录到容器中
COPY /opt/acp-wrappers/. /usr/local/bin/ # buildkit
# 2026-10-10 02:38:27 1.03GB 复制新文件或目录到容器中
COPY /acp-node /acp-node # buildkit
# 2026-10-10 02:38:08 0.00B 设置环境变量 ACP_NODE_DIR
ENV ACP_NODE_DIR=/acp-node
# 2026-10-10 02:38:08 101.27MB 执行命令并创建新的镜像层
RUN |7 USERNAME=openhands UID=10001 GID=10001 PORT=8000 ENABLE_VSCODE=true OPENHANDS_BUILD_GIT_SHA=1d471742ea7be017d013eaaa3080f5d28d5490cb OPENHANDS_BUILD_GIT_REF=refs/tags/v1.54.0 /bin/sh -c set -eux; if command -v apt-get >/dev/null 2>&1; then apt-get -o Acquire::Retries=5 update; apt-get -o Acquire::Retries=5 install -y --no-install-recommends bash ca-certificates git tini tmux; rm -rf /var/lib/apt/lists/*; elif command -v apk >/dev/null 2>&1; then apk add --no-cache bash ca-certificates git shadow tini tmux; elif command -v microdnf >/dev/null 2>&1; then microdnf install -y bash ca-certificates curl git shadow-utils tmux; microdnf clean all; elif command -v dnf >/dev/null 2>&1; then dnf install -y bash ca-certificates curl git shadow-utils tmux; dnf clean all; elif command -v yum >/dev/null 2>&1; then yum install -y bash ca-certificates curl git shadow-utils tmux; yum clean all; elif command -v zypper >/dev/null 2>&1; then zypper --non-interactive install --no-recommends bash ca-certificates curl git shadow tmux; zypper clean --all; else echo "Unsupported base image: no known package manager found" >&2; exit 1; fi; if ! command -v tini >/dev/null 2>&1; then ARCH=$(uname -m); case "$ARCH" in x86_64|amd64) TARCH=amd64; TINI_SHA256=c5b0666b4cb676901f90dfcb37106783c5fe2077b04590973b885950611b30ee;; aarch64|arm64) TARCH=arm64; TINI_SHA256=eae1d3aa50c48fb23b8cbdf4e369d0910dfc538566bfd09df89a774aa84a48b9;; *) echo "Unsupported architecture for tini: '$ARCH'" >&2; exit 1;; esac; curl -fsSL --retry 5 --retry-delay 2 --retry-connrefused "https://github.com/krallin/tini/releases/download/v0.19.0/tini-static-${TARCH}" -o /usr/local/bin/tini; echo "$TINI_SHA256 /usr/local/bin/tini" | sha256sum -c -; chmod 755 /usr/local/bin/tini; fi; tini --version; grep -Eq "^[^:]*:[^:]*:${GID}:" /etc/group || groupadd -g "${GID}" "${USERNAME}"; grep -Eq "^${USERNAME}:" /etc/passwd || useradd -m -u "${UID}" -g "${GID}" -s /bin/bash "${USERNAME}"; mkdir -p /workspace/project; chown -R "${USERNAME}:${USERNAME}" /workspace # buildkit
# 2026-10-10 02:37:58 0.00B 设置环境变量 OPENHANDS_BUILD_GIT_REF
ENV OPENHANDS_BUILD_GIT_REF=refs/tags/v1.54.0
# 2026-10-10 02:37:58 0.00B 设置环境变量 OPENHANDS_BUILD_GIT_SHA
ENV OPENHANDS_BUILD_GIT_SHA=1d471742ea7be017d013eaaa3080f5d28d5490cb
# 2026-10-10 02:37:58 0.00B 定义构建参数
ARG OPENHANDS_BUILD_GIT_REF=unknown
# 2026-10-10 02:37:58 0.00B 定义构建参数
ARG OPENHANDS_BUILD_GIT_SHA=unknown
# 2026-10-10 02:37:58 0.00B 设置环境变量 OH_ENABLE_VSCODE
ENV OH_ENABLE_VSCODE=true
# 2026-10-10 02:37:58 0.00B 定义构建参数
ARG USERNAME UID GID PORT ENABLE_VSCODE
# 2026-10-10 02:37:58 4.72MB 执行命令并创建新的镜像层
RUN |2 NPM_VERSION=11.21.0 DEBIAN_SNAPSHOT=20261004T000000Z /bin/sh -c set -eux; ln -sfn ../lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm; ln -sfn ../lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx; ln -sfn ../lib/node_modules/corepack/dist/corepack.js /usr/local/bin/corepack; printf '%s\n' 'Types: deb' "URIs: http://snapshot.debian.org/archive/debian/${DEBIAN_SNAPSHOT}/" 'Suites: trixie' 'Components: main' 'Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg' 'Check-Valid-Until: no' '' 'Types: deb' "URIs: http://snapshot.debian.org/archive/debian-security/${DEBIAN_SNAPSHOT}/" 'Suites: trixie-security' 'Components: main' 'Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg' 'Check-Valid-Until: no' > /etc/apt/sources.list.d/debian.sources; apt-get update; apt-get upgrade -y; apt-get install -y --no-install-recommends ca-certificates libbz2-1.0 libdb5.3t64 libffi8 libgcc-s1 libgdbm6t64 liblzma5 libncursesw6 libreadline8t64 libsqlite3-0 libssl3t64 libstdc++6 libtinfo6 libuuid1 libzstd1 netbase tzdata zlib1g; rm -rf /var/lib/apt/lists/*; python3 --version; node --version; npm --version # buildkit
# 2026-10-10 02:37:45 45.99MB 执行命令并创建新的镜像层
RUN |2 NPM_VERSION=11.21.0 DEBIAN_SNAPSHOT=20261004T000000Z /bin/sh -c node /usr/local/lib/node_modules/npm/bin/npm-cli.js install --global "npm@${NPM_VERSION}" # buildkit
# 2026-10-10 02:37:38 12.79MB 复制新文件或目录到容器中
COPY /usr/local/lib/node_modules /usr/local/lib/node_modules # buildkit
# 2026-10-10 02:37:37 126.60MB 复制新文件或目录到容器中
COPY /usr/local/bin/node /usr/local/bin/node # buildkit
# 2026-10-10 02:37:37 32.36MB 复制新文件或目录到容器中
COPY /usr/local /usr/local # buildkit
# 2026-10-10 02:37:37 0.00B 定义构建参数
ARG DEBIAN_SNAPSHOT=20261004T000000Z
# 2026-10-10 02:37:37 0.00B 定义构建参数
ARG NPM_VERSION
# 2026-10-05 08:00:00 78.82MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1791158400'
镜像信息
{
"Id": "sha256:932e74c0fd89257b4a0f22c1496543d7590967d8845be6aba36839a8754d2a53",
"RepoTags": [
"ghcr.io/openhands/agent-canvas:1.27.1",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/openhands/agent-canvas:1.27.1"
],
"RepoDigests": [
"ghcr.io/openhands/agent-canvas@sha256:91b7a217dcbefe8c10562523b043458ed1dfaf8ba770194b319fe754cee03f23",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/openhands/agent-canvas@sha256:0bfbde2933209e935925de4923f192e44a4b6c2ff185135055132ff12ccb3253"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-10-12T19:35:11.666547488Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "openhands",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"8000/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"OH_ENABLE_VSCODE=true",
"OPENHANDS_BUILD_GIT_SHA=1d471742ea7be017d013eaaa3080f5d28d5490cb",
"OPENHANDS_BUILD_GIT_REF=refs/tags/v1.54.0",
"ACP_NODE_DIR=/acp-node",
"LC_ALL=C.UTF-8",
"LANG=C.UTF-8",
"LOG_JSON=true",
"OH_ACP_SKILL_SOURCING=openhands_managed",
"EDITOR=code",
"VISUAL=code",
"GIT_EDITOR=code --wait",
"OPENVSCODE_SERVER_ROOT=/openhands/.openvscode-server",
"CHROME_BIN=/usr/bin/chromium",
"PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium",
"CHROMIUM_FLAGS=--no-sandbox --disable-dev-shm-usage --disable-gpu",
"LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:/usr/lib:/usr/lib/x86_64-linux-gnu:",
"AGENT_CANVAS_BUILD_GIT_SHA=f07aebdf5cdd71f4a05ebcf30f8bef5e4e3b70b9",
"AGENT_CANVAS_BUILD_GIT_REF=refs/tags/v1.27.1",
"AGENT_CANVAS_BASE_PATH=/canvas",
"VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK"
],
"Cmd": null,
"Image": "",
"Volumes": {
"/home/openhands/.openhands": {},
"/projects": {}
},
"WorkingDir": "/",
"Entrypoint": [
"tini",
"--",
"/opt/agent-canvas/entrypoint.sh"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.description": "All-in-one agent-canvas: Agent Server + Automation + Frontend",
"org.opencontainers.image.revision": "f07aebdf5cdd71f4a05ebcf30f8bef5e4e3b70b9",
"org.opencontainers.image.source": "https://github.com/OpenHands/OpenHands",
"org.opencontainers.image.title": "agent-canvas",
"org.opencontainers.image.version": "1.27.1"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 3866582642,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/9832829b1d2f00c044388c1ee61b69c011cf54971ec0205eb751870101f5d568/diff:/var/lib/docker/overlay2/1c2ec922d9c141d035ef9a940da7e070d3b73641e0a2518e1d1cbe0476039366/diff:/var/lib/docker/overlay2/bebb71bef253aaf8cefc08fd0c7d2254697baad8c866eb721ad424b363482909/diff:/var/lib/docker/overlay2/8da981f632a248f2205c3a65277658a64a3b785db1f52f565784398103f1d926/diff:/var/lib/docker/overlay2/7a96f60f4699d1c9d09e0910f60009d9fc622a312e49aa617e8ed4250abbed68/diff:/var/lib/docker/overlay2/12fe6a700a0a03fbd481739bd3ebe8d572a1f05e3de2e1a541d2002ec1352b18/diff:/var/lib/docker/overlay2/6d1186684773189723e82603d20695c5c641a787763eeadb392375ee4c36d0db/diff:/var/lib/docker/overlay2/451b4cd48c20f0c869938e3013b13b66f0d201064922ec56f9da187049c6eb98/diff:/var/lib/docker/overlay2/d21dbbf8fab894e8eb57dc1fb31252bac7a09e09c4c8e59045f5c11ee7025bf8/diff:/var/lib/docker/overlay2/a3fd6b423ba5cb517f1bc4f2d898903347a18e3259cd223672a449f3d81934d1/diff:/var/lib/docker/overlay2/4295dd97a34b7bd796b782a5d27c285caff58411fafeb8f44e048d3d6b868c75/diff:/var/lib/docker/overlay2/609df3e45778e6dfc56018a9b19510ffcca15fad5cd4c614ebca54760a8336c1/diff:/var/lib/docker/overlay2/1bed8b42722ac3b57f4fc3b0e4311f1b89060003481b9e11d17ffa4bd04a8a3d/diff:/var/lib/docker/overlay2/a2eb75c766ba413c85142436d100327c387f483b0ece2713e0f74cf017809a75/diff:/var/lib/docker/overlay2/e961c4cc2547ebca296950e65169b8306db96072e2b95a0a2ac150967fe14e94/diff:/var/lib/docker/overlay2/225bc6035e9d920a0df67df340edca609776ee326c74e790aee07a83f9a1f83b/diff:/var/lib/docker/overlay2/5c679aa5c52fd08f31d8c82330aa79e99a8c1a5c58c028b2a4cba31d75034daa/diff:/var/lib/docker/overlay2/48172ee8eab6c5063e8b39e28cce3d6c61931bdbeaee57946c5e813a35a54bdc/diff:/var/lib/docker/overlay2/a9ecb7f947525ad11bbf38e64fb4b09ca6423c67f2f5cd718d3f65ba95b6ff6c/diff:/var/lib/docker/overlay2/7d71772ed6d901be695d57af453e128e8eafd7d518688a67959e4dd4d3fc5741/diff:/var/lib/docker/overlay2/22dbbd026e687b8738410cfb65bde714f357b7e47d9f649dbb89e26acd7b9dea/diff:/var/lib/docker/overlay2/0f010b70bbe0af648200b203167e3d6b605dbf8dd9a46cc47a0caf285804d261/diff:/var/lib/docker/overlay2/ce35df2428e84f3336a99736037e8374155b01cf1bcebf0e3f24c5c17c94d90a/diff:/var/lib/docker/overlay2/36c53765f665c37eea1befe1090af795de22aaba7fc12b56275783eca30f9135/diff:/var/lib/docker/overlay2/63b1bb52226a7b8cd9961eb477f1cf5deb67f4f6e70b1ae4551d43e25fc49f39/diff:/var/lib/docker/overlay2/ad1166f75faccb11afd153cb797ddd378cd4eaefe359eb1b4e7f5da65a0fe34a/diff:/var/lib/docker/overlay2/8a1282bfc531a3a672ae72ce66b6920713297fdd63ce02f639dafe654875a0b9/diff:/var/lib/docker/overlay2/b35defd6a43d66a8d65c9127a2530af352f0831a14c5bfa108100e7ff9912dd4/diff:/var/lib/docker/overlay2/ff422e71b6a23047c6211c45f7973e9352f384a67a31ee39de445fa7150e7578/diff:/var/lib/docker/overlay2/2a71a13ae1b71915b273f4b0b66ea9e28745df744711ba8c4a596e3fdba28583/diff:/var/lib/docker/overlay2/0205dbe0e435ab4f335b1220cc5fad5c631581a1276055ebc8e39e7aa00cbd93/diff:/var/lib/docker/overlay2/5e77f12c8abd498e9083125c9939a02fc66b9f2e7c63230620d4576b95528341/diff:/var/lib/docker/overlay2/8f147531640a2700d2c1b1d9d8007c67e987ee7e64324cb6e1f6371ce6e3d2ec/diff:/var/lib/docker/overlay2/da1ac7d28838ff223e6840bb04635be1635fa863b45066d3ac7d2cff077906a5/diff:/var/lib/docker/overlay2/da35f86288fdffb9a23d926b44fa50759ba83c0713759c2b6af4d86b2b2c5d24/diff:/var/lib/docker/overlay2/f2d86670518bf7d0c98dbdedacc1df67cc436906c8929b81454174e3948ac05e/diff:/var/lib/docker/overlay2/8048ffb20435d07c0bb0b670263069298c4825b8eb5d8efcdae91b2d953ed078/diff:/var/lib/docker/overlay2/b001eb930743c7539eaf31103cf8ec127e13b93456700b4f18db262011423b25/diff:/var/lib/docker/overlay2/175a77eaa1c5471d4115fa65174e12cb547f2db5623c7b3638461fb957dd765d/diff:/var/lib/docker/overlay2/9a6383bce6acb19167906df6f8e027fb1364347c6903677dab5e1cf83162cd8d/diff:/var/lib/docker/overlay2/85f86706c2d31eef8d08b0b77e193dd40c16bc438a1851588a112864b4917ccc/diff:/var/lib/docker/overlay2/4e8fc14b6108bcfa28da6af22ad493b9df323170fe2bae7e875cd42db52efb88/diff:/var/lib/docker/overlay2/98101b1ce0031bd9de177d2f9af92ea165b98b2a93cdb948bf586dc79d94db20/diff:/var/lib/docker/overlay2/7775c856703c6668ca40d8f6286149697bf2318b05073437d97c5b4817ac2337/diff:/var/lib/docker/overlay2/b3a7d2904534478a9674e92bc4eb432d3c85daaed1fe5774c21988e0512c5158/diff:/var/lib/docker/overlay2/1e612d69a1bb4afdaa831858a8aa41867bcb07080febe4092ad37462f5c253a1/diff:/var/lib/docker/overlay2/00cef9ab29f4fb9649ac3a297903947c31c8e5b16b54b4c5fce5ec3a41d5f374/diff:/var/lib/docker/overlay2/62bdc9ebfd322c5c09a76f4813bf876edc59cde42b304a9a04f01ab5e9cf1c16/diff",
"MergedDir": "/var/lib/docker/overlay2/22606eaf664cf6e0d27a50d0286cb088ca1974128713e9ee9d2fec6204390383/merged",
"UpperDir": "/var/lib/docker/overlay2/22606eaf664cf6e0d27a50d0286cb088ca1974128713e9ee9d2fec6204390383/diff",
"WorkDir": "/var/lib/docker/overlay2/22606eaf664cf6e0d27a50d0286cb088ca1974128713e9ee9d2fec6204390383/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:15f1c8eb1ab18eae260c7fb6296434cbe1ff0e1e30fd814ae92a80dd54005e62",
"sha256:382655f74b6cb873ec3485836e92c25155fbda83fbafdcd13ff3038f1b278851",
"sha256:fd3e53bd6f90fe1337ffdfb24926105b3c096decff7b5721c6a54d98db158035",
"sha256:3cb525011699c737644d9443c198b4d6ce8ceb085c2457d7fef7f2d0ea0b4416",
"sha256:ab0a373157a8a8a218da2c6b89eac7753ec59032994614e9952418453b61030b",
"sha256:f1e498ea1127600a127240eecf118679a0e55887727a323ba3fc1cf660f07a05",
"sha256:7855b3f8162e2dff999bfafb974a5f5b6f6a33c236a103885380c74867b18921",
"sha256:9c019701407fc5667339684498412150673d545dae61ca15db2fb6dc1527ba1d",
"sha256:153db3a03908f742b3180a0a4fdf251a54b64fe6e729073db2f820b66c955c51",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:ab496005b6eab810d52ab8ea4942f7224aa1ef883947e873f6d3b30e5154db50",
"sha256:ecfa201e2f02220cf5d7ac136f8a59c437a4acd3636ee8ed26449dc22ba5c51e",
"sha256:c7c81c2952e84342ba43640a717ee10b986abc7561ae43671b2e5898e7b0e5ea",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:7445a6877bf9d949382d90698c20f6b2f1bc3f7d30f43f6896d9af2018f0afce",
"sha256:a4576203acc74506a361ab61e862dd23504e9e40eec257f9f1ef81cc6230dc84",
"sha256:4748ffe26ae2e7e648a20621d9e9daa3f9abee5eaf18ef072bcef56210446c27",
"sha256:b0515c4a32fc94426612c2788d4089f66c6652e1867e4d2097115abcc9d8fa54",
"sha256:50ebadb24cf024dc53c524113eefb4a50265800987a72b5e622a03472ee8fd3b",
"sha256:47674944e0776c26219cbbfe1c52b4fae3ebd2c7459f2e92a4e2d0d801bc844f",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:e67cefb618c7a459cdbc400370cbe6670897cb13153ce03d12c943029cc61a9f",
"sha256:270534f84319e6570175255750cd6fb90fb79159deaca70593455485c61b18b2",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:6f5bcea598be30f6fc77f97562a8a4b77ede260f6de9d6e3622afb5de2bda59d",
"sha256:f0bddd0635a6433aed53ee6c455008fb8180cc324d212e14ec4ffeff69c3b6b4",
"sha256:c728cdc1807386f0509758afc4107fc61acb60ed811a0b45eb5d12beca59a63b",
"sha256:0ae6da76c043066fcdbc7af36d784aae5fd09d0150ab3bdfd1d6e0888445e20c",
"sha256:0c6f7c9c8f597d246dda9fb56bfd8c02e6c9cd22cfde98314ca3be2a70a5d212",
"sha256:49b25d1ff0cfc33e96834048a745b95f249946e6813699028f23cf98ac1ff3a2",
"sha256:6681930d58cf16328d9820db981075921dfb86f44a629f2312bbd03a08387779",
"sha256:fe161f6a03ec0e0431a4e6d700e4efc2ec31b82178a57440401cbb0ae7cd940f",
"sha256:9c7bb99695d6054fcb253596baba4a967ae67f7e76ab5c473fa82b44d7585c9a",
"sha256:7810d9db65aa423ef8777ce315df1a6aebca4e2ec26eb0843dea5a4cd8c3b6aa",
"sha256:3243ad825acffc58c9e7939d8f3f8e2121d161740fe9155f688bbb4c6e8332ae",
"sha256:aee892109a3f974e21dcc9756357b3185ee6e2c054bfe30a957fafc638c88779",
"sha256:78cf30a2682cf02fe19e2d1a5bdf8df5edbbac34725f0c5b92102cf41de839bb",
"sha256:c6025b3cb1c4c7c732bf6344c3796005af901dff97e88e7809a1902759218cd4",
"sha256:8e7978ce8b7cd890545349d590e912189f1be99d74bf47b72dabff5ba410c039",
"sha256:cbe4ab3a344e1d750bc7773e3f53a72954f8ee1ca0d221871968a4568ca735a5",
"sha256:110efe559acc3d8127158d2435ebda0231d29e25d2ca67dee0c70d33ae9ec277",
"sha256:1bd37714ba0e955303d9427ceee4c5d7478b9ffde43cea92766a72fa6e089284",
"sha256:85a9c3894e8e33a3c5a1a9784f4fbfbfb770c7a96a0634bdb097d2fb79d1cbaf",
"sha256:45ab0cb6c6c9cf811b482e7a9af23ee14db1bb042ca3f488a96c76f80ec79472",
"sha256:c1476a1e40c787640ef222204a16b75b97e5a5f6a08fe8abc90e7bbd194a2d0e",
"sha256:a36629d52cb0faf7755116e9969d6ab21eef1b307e38daaa941fc7ef9488d4b4",
"sha256:3fa3dac570abeb88d5402f9429cdb24a35b898ffd57645b63dedb58c8d3aaac8",
"sha256:e1bda70d3c444fb4d527ed05cc086af50c751bfe931fc2075bff66166d02b4db",
"sha256:b106bba9e4fbce6ed0de65cf58f47d01a01bcda4b1e66881b751e3c694870578"
]
},
"Metadata": {
"LastTagTime": "2026-10-13T10:54:05.157086965+08:00"
}
}