镜像构建历史
# 2026-10-27 22:36:56 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["tini" "--" "/opt/agent-canvas/entrypoint.sh"]
# 2026-10-27 22:36:56 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2026-10-27 22:36:56 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/home/openhands/.openhands /projects]
# 2026-10-27 22:36:56 0.00B 指定运行容器时使用的用户
USER openhands
# 2026-10-27 22:36:56 0.00B 执行命令并创建新的镜像层
RUN |9 AUTOMATION_VERSION=1.26.0 AGENT_SERVER_VERSION=1.58.1 AGENT_SERVER_SDK_GIT_REF= OPENHANDS_BUILD_GIT_SHA=6c120073f5a1e1c838ba6fdd9a075c79ff997b98 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.34.0 VITE_BASE_PATH=/canvas VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK AGENT_CANVAS_VERSION=1.34.0 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-27 22:36:56 35.22KB 执行命令并创建新的镜像层
RUN |9 AUTOMATION_VERSION=1.26.0 AGENT_SERVER_VERSION=1.58.1 AGENT_SERVER_SDK_GIT_REF= OPENHANDS_BUILD_GIT_SHA=6c120073f5a1e1c838ba6fdd9a075c79ff997b98 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.34.0 VITE_BASE_PATH=/canvas VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK AGENT_CANVAS_VERSION=1.34.0 DEBIAN_SNAPSHOT=20260930T000000Z /bin/sh -c chmod +x /opt/agent-canvas/entrypoint.sh # buildkit
# 2026-10-27 22:36:56 35.22KB 复制新文件或目录到容器中
COPY docker/entrypoint.sh /opt/agent-canvas/entrypoint.sh # buildkit
# 2026-10-27 22:36:56 460.00B 复制新文件或目录到容器中
COPY /tmp/defaults.env /opt/agent-canvas/defaults.env # buildkit
# 2026-10-27 22:36:56 6.49KB 复制新文件或目录到容器中
COPY tools/ /opt/agent-canvas/tools/ # buildkit
# 2026-10-27 22:36:56 8.56KB 复制新文件或目录到容器中
COPY scripts/runtime-services-info.mjs /opt/agent-canvas/runtime-services-info.mjs # buildkit
# 2026-10-27 22:36:56 6.32MB 复制新文件或目录到容器中
COPY /build/node_modules/@openhands/extensions /opt/agent-canvas/node_modules/@openhands/extensions # buildkit
# 2026-10-27 22:36:56 7.46KB 复制新文件或目录到容器中
COPY /build/node_modules/totalist /opt/agent-canvas/node_modules/totalist # buildkit
# 2026-10-27 22:36:56 33.01KB 复制新文件或目录到容器中
COPY /build/node_modules/mrmime /opt/agent-canvas/node_modules/mrmime # buildkit
# 2026-10-27 22:36:56 4.82KB 复制新文件或目录到容器中
COPY /build/node_modules/@polka /opt/agent-canvas/node_modules/@polka # buildkit
# 2026-10-27 22:36:56 21.88KB 复制新文件或目录到容器中
COPY /build/node_modules/sirv /opt/agent-canvas/node_modules/sirv # buildkit
# 2026-10-27 22:36:56 60.93KB 复制新文件或目录到容器中
COPY /build/node_modules/httpxy /opt/agent-canvas/node_modules/httpxy # buildkit
# 2026-10-27 22:36:56 151.09KB 复制新文件或目录到容器中
COPY /build/node_modules/ws /opt/agent-canvas/node_modules/ws # buildkit
# 2026-10-27 22:36:56 8.97KB 复制新文件或目录到容器中
COPY scripts/tunnel-registry.mjs /opt/agent-canvas/tunnel-registry.mjs # buildkit
# 2026-10-27 22:36:56 10.17KB 复制新文件或目录到容器中
COPY scripts/tunnel-client.mjs /opt/agent-canvas/tunnel-client.mjs # buildkit
# 2026-10-27 22:36:56 3.18KB 复制新文件或目录到容器中
COPY scripts/mars-session.mjs /opt/agent-canvas/mars-session.mjs # buildkit
# 2026-10-27 22:36:56 8.66KB 复制新文件或目录到容器中
COPY scripts/mars-oauth.mjs /opt/agent-canvas/mars-oauth.mjs # buildkit
# 2026-10-27 22:36:56 12.42KB 复制新文件或目录到容器中
COPY scripts/mars-secret-store.mjs /opt/agent-canvas/mars-secret-store.mjs # buildkit
# 2026-10-27 22:36:56 13.18KB 复制新文件或目录到容器中
COPY scripts/mars-credentials.mjs /opt/agent-canvas/mars-credentials.mjs # buildkit
# 2026-10-27 22:36:56 12.47KB 复制新文件或目录到容器中
COPY scripts/mars-api.mjs /opt/agent-canvas/mars-api.mjs # buildkit
# 2026-10-27 22:36:56 15.10KB 复制新文件或目录到容器中
COPY scripts/mars-tunnel-bridge.mjs /opt/agent-canvas/mars-tunnel-bridge.mjs # buildkit
# 2026-10-27 22:36:56 22.57KB 复制新文件或目录到容器中
COPY scripts/mars-web-bridge.mjs /opt/agent-canvas/mars-web-bridge.mjs # buildkit
# 2026-10-27 22:36:56 1.02KB 复制新文件或目录到容器中
COPY scripts/http-body.mjs /opt/agent-canvas/http-body.mjs # buildkit
# 2026-10-27 22:36:56 12.44KB 复制新文件或目录到容器中
COPY scripts/proxy-utils.mjs /opt/agent-canvas/proxy-utils.mjs # buildkit
# 2026-10-27 22:36:56 2.45KB 复制新文件或目录到容器中
COPY scripts/bind-host.mjs /opt/agent-canvas/bind-host.mjs # buildkit
# 2026-10-27 22:36:56 30.33KB 复制新文件或目录到容器中
COPY scripts/static-server.mjs /opt/agent-canvas/static-server.mjs # buildkit
# 2026-10-27 22:36:56 9.78MB 复制新文件或目录到容器中
COPY /build/build /opt/agent-canvas/frontend # buildkit
# 2026-10-27 22:36:29 0.00B 执行命令并创建新的镜像层
RUN |9 AUTOMATION_VERSION=1.26.0 AGENT_SERVER_VERSION=1.58.1 AGENT_SERVER_SDK_GIT_REF= OPENHANDS_BUILD_GIT_SHA=6c120073f5a1e1c838ba6fdd9a075c79ff997b98 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.34.0 VITE_BASE_PATH=/canvas VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK AGENT_CANVAS_VERSION=1.34.0 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-27 22:36:28 602.22MB 执行命令并创建新的镜像层
RUN |9 AUTOMATION_VERSION=1.26.0 AGENT_SERVER_VERSION=1.58.1 AGENT_SERVER_SDK_GIT_REF= OPENHANDS_BUILD_GIT_SHA=6c120073f5a1e1c838ba6fdd9a075c79ff997b98 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.34.0 VITE_BASE_PATH=/canvas VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK AGENT_CANVAS_VERSION=1.34.0 DEBIAN_SNAPSHOT=20260930T000000Z /bin/sh -c uv pip install --system "openhands-automation==${AUTOMATION_VERSION}" "openhands-tools==${AGENT_SERVER_VERSION}" "openhands-agent-server==${AGENT_SERVER_VERSION}" 2>/dev/null || pip install --no-cache-dir "openhands-automation==${AUTOMATION_VERSION}" "openhands-tools==${AGENT_SERVER_VERSION}" "openhands-agent-server==${AGENT_SERVER_VERSION}" # buildkit
# 2026-10-27 22:36:21 42.14MB 执行命令并创建新的镜像层
RUN |9 AUTOMATION_VERSION=1.26.0 AGENT_SERVER_VERSION=1.58.1 AGENT_SERVER_SDK_GIT_REF= OPENHANDS_BUILD_GIT_SHA=6c120073f5a1e1c838ba6fdd9a075c79ff997b98 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.34.0 VITE_BASE_PATH=/canvas VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK AGENT_CANVAS_VERSION=1.34.0 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-27 22:36:21 0.00B 定义构建参数
ARG DEBIAN_SNAPSHOT=20260930T000000Z
# 2026-10-27 22:36:21 0.00B 指定运行容器时使用的用户
USER root
# 2026-10-27 22:36:21 0.00B 设置环境变量 VITE_POSTHOG_API_KEY
ENV VITE_POSTHOG_API_KEY=phc_BgzfxKdgsYMLFTmJqt424ZoyVHvKFfrwttLimzdYTKFK
# 2026-10-27 22:36:21 0.00B 设置环境变量 AGENT_CANVAS_BASE_PATH
ENV AGENT_CANVAS_BASE_PATH=/canvas
# 2026-10-27 22:36:21 0.00B 设置环境变量 AGENT_CANVAS_BUILD_GIT_REF
ENV AGENT_CANVAS_BUILD_GIT_REF=refs/tags/v1.34.0
# 2026-10-27 22:36:21 0.00B 设置环境变量 AGENT_CANVAS_BUILD_GIT_SHA
ENV AGENT_CANVAS_BUILD_GIT_SHA=6c120073f5a1e1c838ba6fdd9a075c79ff997b98
# 2026-10-27 22:36:21 0.00B 添加元数据标签
LABEL org.opencontainers.image.revision=6c120073f5a1e1c838ba6fdd9a075c79ff997b98
# 2026-10-27 22:36:21 0.00B 添加元数据标签
LABEL org.opencontainers.image.version=1.34.0
# 2026-10-27 22:36:21 0.00B 添加元数据标签
LABEL org.opencontainers.image.source=https://github.com/OpenHands/OpenHands
# 2026-10-27 22:36:21 0.00B 添加元数据标签
LABEL org.opencontainers.image.description=All-in-one agent-canvas: Agent Server + Automation + Frontend
# 2026-10-27 22:36:21 0.00B 添加元数据标签
LABEL org.opencontainers.image.title=agent-canvas
# 2026-10-27 22:36:21 0.00B 定义构建参数
ARG AGENT_CANVAS_VERSION=dev
# 2026-10-27 22:36:21 0.00B 定义构建参数
ARG VITE_POSTHOG_API_KEY=
# 2026-10-27 22:36:21 0.00B 定义构建参数
ARG VITE_BASE_PATH=/canvas
# 2026-10-27 22:36:21 0.00B 定义构建参数
ARG OPENHANDS_BUILD_GIT_REF=unknown
# 2026-10-27 22:36:21 0.00B 定义构建参数
ARG OPENHANDS_BUILD_GIT_SHA=unknown
# 2026-10-27 22:36:21 0.00B 定义构建参数
ARG AGENT_SERVER_SDK_GIT_REF=
# 2026-10-27 22:36:21 0.00B 定义构建参数
ARG AGENT_SERVER_VERSION
# 2026-10-27 22:36:21 0.00B 定义构建参数
ARG AUTOMATION_VERSION
# 2026-10-23 09:40:51 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["tini" "--" "/usr/local/bin/openhands-agent-server"]
# 2026-10-23 09:40:51 0.00B 设置环境变量 LD_LIBRARY_PATH
ENV LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu:/usr/lib:/usr/lib/x86_64-linux-gnu:
# 2026-10-23 09:40:51 0.00B 执行命令并创建新的镜像层
RUN |1 USERNAME=openhands /bin/sh -c chmod +x /usr/local/bin/openhands-agent-server # buildkit
# 2026-10-23 09:40:50 113.67MB 复制新文件或目录到容器中
COPY --chown=openhands:openhands /agent-server/dist/openhands-agent-server /usr/local/bin/openhands-agent-server # buildkit
# 2026-10-23 09:38:56 0.00B 定义构建参数
ARG USERNAME
# 2026-10-23 09:38:56 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2026-10-23 09:38:56 0.00B 设置环境变量 OH_ACP_SKILL_SOURCING
ENV OH_ACP_SKILL_SOURCING=openhands_managed
# 2026-10-23 09:38:56 0.00B 设置环境变量 LOG_JSON
ENV LOG_JSON=true
# 2026-10-23 09:38:56 0.00B 设置工作目录为/
WORKDIR /
# 2026-10-23 09:38:56 0.00B 指定运行容器时使用的用户
USER openhands
# 2026-10-23 09:38:56 690.89MB 执行命令并创建新的镜像层
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-23 09:38:28 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-23 09:38:28 41.78MB 执行命令并创建新的镜像层
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-23 09:38:24 414.45MB 执行命令并创建新的镜像层
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-23 09:38:10 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-23 09:38:08 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-23 09:38:04 0.00B 定义构建参数
ARG RELEASE_ORG=gitpod-io
# 2026-10-23 09:38:04 0.00B 定义构建参数
ARG RELEASE_TAG=openvscode-server-v1.109.5
# 2026-10-23 09:38:04 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-23 09:38:04 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-23 09:38:04 42.47MB 复制新文件或目录到容器中
COPY /uv /uvx /bin/ # buildkit
# 2026-10-23 09:38:04 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-23 09:37:47 0.00B 指定运行容器时使用的用户
USER root
# 2026-10-23 09:37:47 0.00B 定义构建参数
ARG INSTALL_CAPABILITIES
# 2026-10-23 09:37:47 0.00B 定义构建参数
ARG USERNAME
# 2026-10-23 09:37:47 0.00B 声明容器运行时监听的端口
EXPOSE map[8000/tcp:{}]
# 2026-10-23 09:37:47 0.00B 设置环境变量 OH_ACP_SKILL_SOURCING
ENV OH_ACP_SKILL_SOURCING=openhands_managed
# 2026-10-23 09:37:47 0.00B 设置环境变量 LOG_JSON
ENV LOG_JSON=true
# 2026-10-23 09:37:47 0.00B 设置环境变量 LANG
ENV LANG=C.UTF-8
# 2026-10-23 09:37:47 0.00B 设置环境变量 LC_ALL
ENV LC_ALL=C.UTF-8
# 2026-10-23 09:37:47 0.00B 设置工作目录为/
WORKDIR /
# 2026-10-23 09:37:47 0.00B 指定运行容器时使用的用户
USER openhands
# 2026-10-23 09:37:47 49.00B 执行命令并创建新的镜像层
RUN |7 USERNAME=openhands UID=10001 GID=10001 PORT=8000 ENABLE_VSCODE=true OPENHANDS_BUILD_GIT_SHA=60192ed54db73ac658ac1a07462916126c32d3a0 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.58.1 /bin/sh -c mkdir -p /etc/claude-code && echo '{"permissions":{"allow":["Edit","Read","Bash"]}}' > /etc/claude-code/managed-settings.json # buildkit
# 2026-10-23 09:37:47 0.00B 执行命令并创建新的镜像层
RUN |7 USERNAME=openhands UID=10001 GID=10001 PORT=8000 ENABLE_VSCODE=true OPENHANDS_BUILD_GIT_SHA=60192ed54db73ac658ac1a07462916126c32d3a0 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.58.1 /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-23 09:37:47 223.00B 复制新文件或目录到容器中
COPY /opt/acp-wrappers/. /usr/local/bin/ # buildkit
# 2026-10-23 09:37:47 1.03GB 复制新文件或目录到容器中
COPY /acp-node /acp-node # buildkit
# 2026-10-23 09:37:39 0.00B 设置环境变量 ACP_NODE_DIR
ENV ACP_NODE_DIR=/acp-node
# 2026-10-23 09:37:39 101.27MB 执行命令并创建新的镜像层
RUN |7 USERNAME=openhands UID=10001 GID=10001 PORT=8000 ENABLE_VSCODE=true OPENHANDS_BUILD_GIT_SHA=60192ed54db73ac658ac1a07462916126c32d3a0 OPENHANDS_BUILD_GIT_REF=refs/tags/v1.58.1 /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-23 09:37:28 0.00B 设置环境变量 OPENHANDS_BUILD_GIT_REF
ENV OPENHANDS_BUILD_GIT_REF=refs/tags/v1.58.1
# 2026-10-23 09:37:28 0.00B 设置环境变量 OPENHANDS_BUILD_GIT_SHA
ENV OPENHANDS_BUILD_GIT_SHA=60192ed54db73ac658ac1a07462916126c32d3a0
# 2026-10-23 09:37:28 0.00B 定义构建参数
ARG OPENHANDS_BUILD_GIT_REF=unknown
# 2026-10-23 09:37:28 0.00B 定义构建参数
ARG OPENHANDS_BUILD_GIT_SHA=unknown
# 2026-10-23 09:37:28 0.00B 设置环境变量 OH_ENABLE_VSCODE
ENV OH_ENABLE_VSCODE=true
# 2026-10-23 09:37:28 0.00B 定义构建参数
ARG USERNAME UID GID PORT ENABLE_VSCODE
# 2026-10-23 09:37:28 14.78MB 执行命令并创建新的镜像层
RUN |2 NPM_VERSION=11.21.0 DEBIAN_SNAPSHOT=20261019T000000Z /bin/sh -c set -eux; python3 -m pip install --no-deps --no-index --no-cache-dir --force-reinstall --disable-pip-version-check --root-user-action=ignore /tmp/pip-dist/pip-*-py3-none-any.whl # buildkit
# 2026-10-23 09:37:25 4.72MB 执行命令并创建新的镜像层
RUN |2 NPM_VERSION=11.21.0 DEBIAN_SNAPSHOT=20261019T000000Z /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-23 09:37:13 46.13MB 执行命令并创建新的镜像层
RUN |2 NPM_VERSION=11.21.0 DEBIAN_SNAPSHOT=20261019T000000Z /bin/sh -c node /usr/local/lib/node_modules/npm/bin/npm-cli.js install --global "npm@${NPM_VERSION}" # buildkit
# 2026-10-23 09:36:33 12.79MB 复制新文件或目录到容器中
COPY /usr/local/lib/node_modules /usr/local/lib/node_modules # buildkit
# 2026-10-23 07:58:10 126.60MB 复制新文件或目录到容器中
COPY /usr/local/bin/node /usr/local/bin/node # buildkit
# 2026-10-23 07:58:00 32.36MB 复制新文件或目录到容器中
COPY /usr/local /usr/local # buildkit
# 2026-10-23 07:58:00 0.00B 定义构建参数
ARG DEBIAN_SNAPSHOT=20261019T000000Z
# 2026-10-23 07:58:00 0.00B 定义构建参数
ARG NPM_VERSION
# 2026-10-21 05:32:55 78.82MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1792531975'
镜像信息
{
"Id": "sha256:7ea62c108bb6a7b53098010a9017aa0bbfcf40eda4fd435fea8c5c19086c39da",
"RepoTags": [
"ghcr.io/openhands/agent-canvas:1.34.0",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/openhands/agent-canvas:1.34.0"
],
"RepoDigests": [
"ghcr.io/openhands/agent-canvas@sha256:638c5e3ce76df74344bb18bd85f44af395337ade8e71f04532099fb380febadf",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/ghcr.io/openhands/agent-canvas@sha256:0218f42b52471a2f41653e78b8d663f99a2c4025f5f8ef47cb77831446bd0380"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-10-27T14:36:56.740007565Z",
"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=60192ed54db73ac658ac1a07462916126c32d3a0",
"OPENHANDS_BUILD_GIT_REF=refs/tags/v1.58.1",
"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=6c120073f5a1e1c838ba6fdd9a075c79ff997b98",
"AGENT_CANVAS_BUILD_GIT_REF=refs/tags/v1.34.0",
"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": "6c120073f5a1e1c838ba6fdd9a075c79ff997b98",
"org.opencontainers.image.source": "https://github.com/OpenHands/OpenHands",
"org.opencontainers.image.title": "agent-canvas",
"org.opencontainers.image.version": "1.34.0"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 3927956192,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/6bd598b8fed6ca49745cb1a12e24a944310f216b1938b37f8b66a76c3eb223d6/diff:/var/lib/docker/overlay2/ed97f7960d73ff88f4d42aec12575114e361bad46792a674d164e2fdcf9e929a/diff:/var/lib/docker/overlay2/e1af152ee15c8ad763bf62ae903d03fb566ed631f047bb331edcf53e77cc8d8b/diff:/var/lib/docker/overlay2/96bfcfccdaae73f2f4405afaf6659c891b14198dbadd77b3ab813f01700328d0/diff:/var/lib/docker/overlay2/f1d3933a8221905c4a81b20317af14e09cc38f718d84e78b4515251ffcf0cd4e/diff:/var/lib/docker/overlay2/9b996d48532bdfc3d8395a4c2284ea36d54761b61a0fb95ad59b998e02060456/diff:/var/lib/docker/overlay2/ce0428018223d2dd81a9e887bc53f96fcdddf92c39d4d8f33586ca4ec3c4b886/diff:/var/lib/docker/overlay2/bcb4fa667967160546339aa590e3acc8ddb65934acb31e83990cb80c6830f97c/diff:/var/lib/docker/overlay2/3d27dcaaddb6a661c5e40f55dfc6c599f892b34bb67bf2cc3908dca613a51dd5/diff:/var/lib/docker/overlay2/1e12494a986e443ee35c1713f0aee543cee18c351c5a745964735407f834aa69/diff:/var/lib/docker/overlay2/4a2ca1f57f343e1835cb802a7c32ce1723743d262ae116798e4c3b78d2609db1/diff:/var/lib/docker/overlay2/6be1c5fb66ecb884af4f3f3a2a5c7bafec1adbf0be59459c3ae12614a57bac70/diff:/var/lib/docker/overlay2/d739e8ce208a3217239e42a2cc0d68a8789c75c7e4a779fa987c311aa2ef8ba8/diff:/var/lib/docker/overlay2/effa6746c549485659cd51ce744eb9b47e1254119c52170022a608ef9e308564/diff:/var/lib/docker/overlay2/22a752954b2fa3414c1b69d86d150fb4f4a1c45a72e877e185b22c278354466e/diff:/var/lib/docker/overlay2/4bf36f6bd496e6799c9cefcd4857d9ee2cda8c3a02971ba9891fd88767c64035/diff:/var/lib/docker/overlay2/d8114e4d2c25974902f3ba390e808f7c6813780fb90cd2662010a5bba0c552c7/diff:/var/lib/docker/overlay2/72d9aef0091f93f04606f044aef2567f71f0a5cbb90f932f8d624cec94cee949/diff:/var/lib/docker/overlay2/f6b4681fe15b41674c99e5bf831adcace2773adbcab154b541ecbb9793e4dc8d/diff:/var/lib/docker/overlay2/e90e9397efd40d7d9188e63e39b0cc3e048507c298ed85d625a750f7350f0e22/diff:/var/lib/docker/overlay2/97c9cf60e3b51826650ab5f55201a8029c1a13cb6b4d4af1b4456ce5be194887/diff:/var/lib/docker/overlay2/b78dba998df19d88a6ade3e1a50fa4aa41e92054df587aa1ddbe658f6d8ee9a5/diff:/var/lib/docker/overlay2/321047b2c8151c449802da68c4e66cb5a40550679bde5d036876ab6c7192ab09/diff:/var/lib/docker/overlay2/9eceba817475a70114bb341bb368b78875eca3bf2336e61d6051d841394970e5/diff:/var/lib/docker/overlay2/3c73b8ac8cd0f25a8828c087666d8809ead6aa5b76490e2ca88145fae930ef32/diff:/var/lib/docker/overlay2/4bfc18b45a4f83e4cfb7aa9cb6f856b76be2bdb2916de455ce94c99c91e00b43/diff:/var/lib/docker/overlay2/e21fcafadd6f9044866bdb267a5c9bd22fefdc1d7d02dbfff7b20ffef21f7a18/diff:/var/lib/docker/overlay2/3c338f158ccb485a34bf84d00c2810aef3e3856a9a40df6c0f135f2c9d84b915/diff:/var/lib/docker/overlay2/3841f29f05699e9dc6ef5eab4d844315e964ecae6bc6cf7c4879aaa0eae129a4/diff:/var/lib/docker/overlay2/50f53dba1806bc3d615ea9d2e01d3d887ae97e89ed32f8ee340939161d31833d/diff:/var/lib/docker/overlay2/82cd54317813fd48b91bfbffe48c0b1783668eded91786dbf81a2686e1e9e5d6/diff:/var/lib/docker/overlay2/9486ffe12c2f01ab677c55ddb0c8901786cee0c036829f4691d5cc6e0a1a1501/diff:/var/lib/docker/overlay2/0326bda94534e329a3056226232cd89f9e5cc47b0c4f85cb9cfc43cbb5e1f95f/diff:/var/lib/docker/overlay2/c03c1a637fd5a832427dc39e062294eee19d6f71478f0b0886aa04cb6559d65e/diff:/var/lib/docker/overlay2/688d6f0c7ae71a3f62a64d715dac02a90560cd53dd8099b0dc9003689fa0550e/diff:/var/lib/docker/overlay2/e5b763d06375b361aaca02dddacf103b5a9605df54ea7178a3591d1a6b4a1d0a/diff:/var/lib/docker/overlay2/a1245aa6a279b8c4ff2c822903d8ee36179e75356bdae1149545171f27791e1f/diff:/var/lib/docker/overlay2/a4356a926151302b5fb6a1e6aa7d3d44d2848bdd2b63d7403923caaac60f4603/diff:/var/lib/docker/overlay2/e479af1ada8c6bdd0285e3de0b84d4e87486e8eceacbfc3ed64bb279140499bb/diff:/var/lib/docker/overlay2/9fe1718359ac5ad7a3e65a71c4bdb32c8cb4697decc3c09a40bfaf815460dcff/diff:/var/lib/docker/overlay2/73b45fb1f7be73913707e34b2496127495755219ef8a1a3d7a481755f6273548/diff:/var/lib/docker/overlay2/898009aef6b7acd607b73b597fba2ab3389c212d0ad86f680e5eb5d5ef6baede/diff:/var/lib/docker/overlay2/de6d4afd0f8eab64277bba451729b826f843da0598ad4e3e165286cee820cc3b/diff:/var/lib/docker/overlay2/ca5559e0bfe3db7877403144d64444a7683f4f3b9938aee7000e17aa72e788e1/diff:/var/lib/docker/overlay2/5f9f8ee02732afa5f18f77dc7dd173143b661798d1b72f9fd16293cfbd7687b3/diff:/var/lib/docker/overlay2/691274bdb7a3f4137b5df57c781cb931b13cb5ccb85e68aaa365c008c8a421cd/diff:/var/lib/docker/overlay2/61226e7d4d482450947bd8716a4c0a8bcad63bde61e542cf25dca2b2d16ae6de/diff:/var/lib/docker/overlay2/56c2b70f9c791853097ed6c2ad1253f18a48973411fbd19489f9d1130a62a6ea/diff:/var/lib/docker/overlay2/f93baf8d0caf0336a806bb47a4161e6e1f95824653ae5c4ba8498ef028f05262/diff:/var/lib/docker/overlay2/c9927c105d10c16dd04ee0152a73b1beb74b276afc684eacc5eb16de83c97aa0/diff:/var/lib/docker/overlay2/6acc637907c89b13f6c7e6cb980b844c1d498eb55c1eefb356b50549fe706a10/diff",
"MergedDir": "/var/lib/docker/overlay2/3f8c125ac5bf8b4d8c3480d666c8f14fa707cec707d9a7e965cb25ad7e15537b/merged",
"UpperDir": "/var/lib/docker/overlay2/3f8c125ac5bf8b4d8c3480d666c8f14fa707cec707d9a7e965cb25ad7e15537b/diff",
"WorkDir": "/var/lib/docker/overlay2/3f8c125ac5bf8b4d8c3480d666c8f14fa707cec707d9a7e965cb25ad7e15537b/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:a70f6272827f64e1427d048ced77491aab5d64ab95725e56920802ff391197d7",
"sha256:42dc0b8fc0b3841bfd6b475e688405be03b563e6a485b5b86d85fdc3b2f91357",
"sha256:6dd29384de21174e32881062a87fefc8e073ac8008375c2fb3f8dc8eac76a136",
"sha256:e0b8ffad8b829550d497581948e47919bbc271a1a118191ed8a7973f2e2bfe8a",
"sha256:716c87ab56206c1b7054388bcbde96038b260a54f098a0b559c564fd4a50b9e7",
"sha256:d9d7c86b58b9828603f6c1b27e9331d6e22267a50250bb8da3d75280ac2e8090",
"sha256:ed6c983645f742f9e063d09de23b76ab88642e89d51d3391e0afd74889efe763",
"sha256:6c64c46868e33d0bdbaaf5cac79ce5b0c577b14512ac1f41365dcc0f29648836",
"sha256:5b5abbb2cd649deacbddd5402544daa9c02965ccc94c5cbb1adfc8242717e99a",
"sha256:cf2615064c78ec2776d7caa49841a4767ba2dfa7e6f8cc3a2324ea28d9502b52",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:c30fbaee136e186ebf80bb088f356a7b3b221b21a67806003c52d0703cb03546",
"sha256:51ca61332fc1e5a7d5e103a34b5a25e4bfea95236f8bb61f33dc203008eca97a",
"sha256:201ae88355cd1ab2b7536ca6e8cdd6e6eb267b4980aaef39ce2a9d412fe8e933",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:22463ca0e840944f2516bec502e4ef53d5fceb990a0a5f32a8b6f28f64278f94",
"sha256:25e5fdde418744d7395661cf35986d9a7a05e769bb0d0f42a7a485a6ab25d796",
"sha256:25dbb8d51079a5de6d8464e46add47e1563b152fb240f1d6f570d5b3eed5b4a8",
"sha256:7cc3b3a19c60dc33242c0b1c2c58f0d4e30078546f0a8c04bae2ee2f86ef0a70",
"sha256:e98e597ee9f90f1f0bd87a1736669600c497849c15fd8a62959356bb385232dc",
"sha256:61e2c30624dde8226ae20d84d247442c3285b2c1d7a0e39524d1301fda15f7cf",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:18be5a6384d28a6dfaf724c38072f545ad63d946ac9db3e3cd9dbcae75fb6861",
"sha256:ffa9330a0d1513ef16aa26ba98f2f3c935dc401d65691dc63c03773451d9ca9d",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:31424f53dafb14048b76c6614228c653bb49152ab31613d500a7baae70035e42",
"sha256:346e44e7c29da767541eff3e2421389c891d4e98f3ef33233d40021edbf436a7",
"sha256:4c71387cde3d599eb8d28517aa9ac244326e3fb1d039c1cca53517f7ac9f6034",
"sha256:a9d792215c4da7e5a26acfb42e6e14866ddefd39f79bfa102c4151e18a6cc9b8",
"sha256:fa722c62710d94c8f6cef2607987e3739bdc990d651f1f8f0edaaa0ef8935666",
"sha256:4ff4209766510094effad0f5d3d70f748876ab68fccfcb747fa270ac59ac2809",
"sha256:9be4e12f543d69f2c35497464fd53165393e23238e77b20f5c5fc115fc4c1b0c",
"sha256:4349139ed40489f191e99b367163e5d2d84f76cee15396b32ada2ff844956ec0",
"sha256:4ff615f62dd19ff00bc71997330b29c320ed9fb3a13aa5a4471a5ec4a5e32711",
"sha256:257bdc4caccf489385ffc04a05f0440a0c9027bd45211f1fe3173990c6c1c587",
"sha256:ef449338819ada89d1c255ecbff7816d7e37a9a7c1d5a15552b456000ae5cc04",
"sha256:9e782ed402ef8b361a2f05836c9d21ebad83a8a634b887a0930a626daa489710",
"sha256:f83520533947d509c6e5f8fc40cccfc53baac5d0b14a724adfc5dd6c5a237a44",
"sha256:6a317b264dd25f4e42c2861d71fc02fab133d3b1d577a8b6ef23d4abac4873f8",
"sha256:5043a2537eb579e94ef9b97fe85569b13693a4a64323283ccd1e459d57d33286",
"sha256:8f47d776fae728db658235510614de68d7b873069326b3756dafb3e3c719336d",
"sha256:05d71b16ea5c5f5899ab9dd3da926e27dbf85c0109c0cfb07a4e63748c3d91e6",
"sha256:7aac0c4f79c829a53b4450672075ac61d9e533bd655e9791a26d26af8d86bedc",
"sha256:3d18e19f45d5e519843ddef75b15ee82470eb7a5583c1f0ef7fd211162c1b368",
"sha256:5f145ce3df980ef5bccfade446c326f9aeda72d093e09dd20e8691d820623a77",
"sha256:cbcf46c7d64d612ebc54a840a37e2de807ae03c600a5b46ed05d1ff28c11db39",
"sha256:478a9dfb9b67c6ad28438a9cd4ec632bf5cb9438f85aeb3224c3677088b1fc83",
"sha256:e11cc05534aa9f780ceca5e0f8dbff71267c298510675dff004fe5faef08bd08",
"sha256:e8eb93c60eaf1b5d2a20a250f417f97f0fef950c3e145f3294b95b3fa60f7034",
"sha256:447d7b059167abc62116de7db8b5b18e7aaf76558478270ebdd2632016ac356c",
"sha256:1b1dc67369c89a86976e4d3d5cf23ed6cba63d9fb07f96f1af7068625b59ea54",
"sha256:aa177dfdcb027b1874b3b01b41b320de870c5b0ccc68e5d2c40a5be031fdc9bf"
]
},
"Metadata": {
"LastTagTime": "2026-10-30T19:10:57.565294621+08:00"
}
}