镜像构建历史
# 2026-11-06 04:03:44 0.00B 设置默认要执行的命令
CMD []
# 2026-11-06 04:03:44 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/opt/hermes/docker/entrypoint-dispatch.sh"]
# 2026-11-06 04:03:44 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/opt/data]
# 2026-11-06 04:03:44 0.00B 设置环境变量 HERMES_PYTHON
ENV HERMES_PYTHON=/opt/hermes/.venv/bin/python
# 2026-11-06 04:03:44 3.13KB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/data && chmod 0644 /opt/hermes/tools/facts.json && rm -f /opt/hermes/.venv/.lock /opt/hermes/pm-runtime/.lock # buildkit
# 2026-11-06 04:03:44 591.00B 复制新文件或目录到容器中
COPY --chmod=0644 docker/profile-hermes-path.sh /etc/profile.d/hermes.sh # buildkit
# 2026-11-06 04:03:44 0.00B 设置环境变量 PATH
ENV PATH=/opt/hermes/bin:/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-11-06 04:03:44 1.56KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/entrypoint-dispatch.sh /opt/hermes/docker/entrypoint-dispatch.sh # buildkit
# 2026-11-06 04:03:44 3.71KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/hermes-exec-shim.sh /opt/hermes/bin/hermes # buildkit
# 2026-11-06 04:03:44 0.00B 设置环境变量 XDG_RUNTIME_DIR
ENV XDG_RUNTIME_DIR=/tmp/hermes-runtime
# 2026-11-06 04:03:44 0.00B 设置环境变量 HERMES_WRITE_SAFE_ROOT
ENV HERMES_WRITE_SAFE_ROOT=/opt/data
# 2026-11-06 04:03:44 0.00B 设置环境变量 HERMES_HOME
ENV HERMES_HOME=/opt/data
# 2026-11-06 04:03:44 0.00B 设置环境变量 HERMES_TUI_DIR
ENV HERMES_TUI_DIR=/opt/hermes/ui-tui
# 2026-11-06 04:03:44 0.00B 设置环境变量 HERMES_WEB_DIST
ENV HERMES_WEB_DIST=/opt/hermes/hermes_cli/web_dist
# 2026-11-06 04:03:44 1.65KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/cont-init.d/02-reconcile-profiles /etc/cont-init.d/02-reconcile-profiles # buildkit
# 2026-11-06 04:03:44 2.81KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/cont-init.d/015-supervise-perms /etc/cont-init.d/015-supervise-perms # buildkit
# 2026-11-06 04:03:44 66.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /etc/cont-init.d && printf '#!/command/with-contenv sh\nexec /opt/hermes/docker/stage2-hook.sh\n' > /etc/cont-init.d/01-hermes-setup && chmod +x /etc/cont-init.d/01-hermes-setup # buildkit
# 2026-11-06 04:03:43 6.05KB 复制新文件或目录到容器中
COPY docker/s6-rc.d/ /etc/s6-overlay/s6-rc.d/ # buildkit
# 2026-11-06 04:03:43 565.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; if [ ! -f /opt/hermes/install-stamp.json ]; then printf '{"schemaVersion":2,"commit":"0000000000000000000000000000000000000000","distribution":"docker","source":"fallback","updateMechanism":"external"}\n' > /opt/hermes/install-stamp.json; fi; python3 -c 'import json; from pathlib import Path; path = Path("/opt/hermes/install-stamp.json"); stamp = json.loads(path.read_text()); stamp["pmRuntime"] = "/opt/hermes/pm-runtime"; path.write_text(json.dumps(stamp) + "\n")'; mkdir -p /etc/hermes; python3 -c 'import json, pathlib, tomllib; project = tomllib.loads(pathlib.Path("/opt/hermes/pyproject.toml").read_text(encoding="utf-8"))["project"]; stamp = json.loads(pathlib.Path("/opt/hermes/install-stamp.json").read_text(encoding="utf-8")); commit = stamp.get("commit"); revision = commit if commit and set(commit) != {"0"} else None; marker = pathlib.Path("/etc/hermes/image-provenance.json"); marker.write_text(json.dumps({"schema": 1, "deployment_kind": "image", "manager": "docker", "image": "nousresearch/hermes-agent", "version": project["version"], "revision": revision}, sort_keys=True, separators=(",", ":")) + "\n", encoding="utf-8"); marker.chmod(0o444)' # buildkit
# 2026-11-06 04:03:43 3.72KB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/hermes/bin && cp /opt/hermes/docker/hermes-exec-shim.sh /opt/hermes/bin/hermes && chmod 0755 /opt/hermes /opt/hermes/bin/hermes && printf 'docker\n' > /opt/hermes/.install_method # buildkit
# 2026-11-06 04:03:43 0.00B 指定运行容器时使用的用户
USER root
# 2026-11-06 04:03:43 4.21MB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c /opt/hermes/.venv/bin/python -m docker.build_agent # buildkit
# 2026-11-06 04:03:43 138.21MB 复制新文件或目录到容器中
COPY --chmod=a+rX,go-w . . # buildkit
# 2026-11-06 04:03:43 0.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /tmp/hermes-runtime && chmod 0700 /tmp/hermes-runtime # buildkit
# 2026-11-06 04:03:42 0.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /tmp/.X11-unix && chmod 1777 /tmp/.X11-unix # buildkit
# 2026-11-06 04:03:42 42.97MB 复制新文件或目录到容器中
COPY /opt/hermes/apps/desktop/dist-webapp /opt/hermes/apps/desktop/dist-webapp # buildkit
# 2026-11-06 04:03:42 3.25MB 复制新文件或目录到容器中
COPY /opt/products/web /opt/hermes/hermes_cli/web_dist # buildkit
# 2026-11-06 04:03:42 4.19MB 复制新文件或目录到容器中
COPY /opt/products/tui /opt/hermes/ui-tui # buildkit
# 2026-11-06 04:03:42 87.22MB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c cd plugins/platforms/photon/sidecar && npm ci --no-audit --fetch-retries=5 && npm cache clean --force # buildkit
# 2026-11-06 04:03:27 64.06KB 复制新文件或目录到容器中
COPY plugins/platforms/photon/sidecar/package.json plugins/platforms/photon/sidecar/package-lock.json plugins/platforms/photon/sidecar/patch-spectrum-mixed-attachments.mjs plugins/platforms/photon/sidecar/ # buildkit
# 2026-11-06 04:03:27 21.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c mkdir -p /opt/hermes/node_modules/.bin && ln -s ../typescript/bin/tsc /opt/hermes/node_modules/.bin/tsc # buildkit
# 2026-11-06 04:03:27 24.35MB 复制新文件或目录到容器中
COPY /opt/hermes/node_modules/typescript /opt/hermes/node_modules/typescript # buildkit
# 2026-11-06 04:03:15 545.28MB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c python3 -m pm.build_env --source /opt/hermes --python /usr/local/bin/python3 --cache /opt/hermes/uv-cache --out /opt/hermes/.venv --no-install-project --sealed --record-selection --extra all --extra messaging --extra otlp --extra anthropic --extra bedrock --extra azure-identity --extra matrix --extra google-chat --extra fal --extra documents # buildkit
# 2026-11-06 04:02:36 0.00B 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c touch ./README.md # buildkit
# 2026-11-06 04:02:36 1.30MB 复制新文件或目录到容器中
COPY pyproject.toml uv.lock ./ # buildkit
# 2026-11-06 04:02:36 0.00B 设置环境变量 CC CXX
ENV CC=gcc CXX=g++
# 2026-11-06 04:02:36 0.00B 设置环境变量 HERMES_PYTHON
ENV HERMES_PYTHON=/usr/local/bin/python3
# 2026-11-06 04:02:36 2.58MB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c python3 -c 'from pathlib import Path; from pm import stage_manager_runtime; from scripts.bundles.payload import seal_pm_runtime; root = Path("/opt/hermes"); python = Path("/usr/local/bin/python3").resolve(); stage_manager_runtime(python=python, destination=root / "pm-runtime", project=root / "pm"); seal_pm_runtime(root, python)' # buildkit
# 2026-11-06 04:02:36 1.38GB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; python3 -c 'from pm import ensure; [ensure(name, explicit=True) for name in ("uv", "chromium", "npm", "ffmpeg", "ripgrep")]'; python3 -c 'from pathlib import Path; from pm import installed_package; [Path("/usr/local/bin", command).symlink_to(installed_package(package).binary) for command, package in (("python3", "python"), ("node", "node"), ("npm", "npm"), ("ffmpeg", "ffmpeg"), ("rg", "ripgrep"))]; Path("/usr/local/bin/ffprobe").symlink_to(installed_package("ffmpeg").binary.with_name("ffprobe"))'; ffmpeg -version >/dev/null; ffprobe -version >/dev/null; rg --version >/dev/null; python3 -c 'import shutil; from pathlib import Path; from pm import env_for; Path("/usr/local/bin/npx").symlink_to(shutil.which("npx", path=env_for("npm", base_env={})["PATH"]))'; node --version; npm --version; browser_bin="$(python3 -c 'from pm import installed_package; print(installed_package("chromium").binary)')"; test -n "$browser_bin"; "$browser_bin" --version; mkdir -p /etc/hermes; printf '%s' "$browser_bin" > /etc/hermes/chromium-executable-path # buildkit
# 2026-11-06 04:02:20 7.97KB 复制新文件或目录到容器中
COPY scripts/bundles/payload.py scripts/bundles/payload.py # buildkit
# 2026-11-06 04:02:20 15.55KB 复制新文件或目录到容器中
COPY hermes_cli/__init__.py hermes_cli/runtime_state.py hermes_cli/ # buildkit
# 2026-11-06 04:02:20 67.66KB 复制新文件或目录到容器中
COPY hermes_constants.py hermes_constants.py # buildkit
# 2026-11-06 04:02:20 764.87KB 复制新文件或目录到容器中
COPY pm/ pm/ # buildkit
# 2026-10-29 10:35:12 0.00B 设置环境变量 HERMES_RUNTIME_DIR
ENV HERMES_RUNTIME_DIR=/opt/hermes/tools
# 2026-10-29 10:35:12 0.00B 设置工作目录为/opt/hermes
WORKDIR /opt/hermes
# 2026-10-29 10:35:12 8.95KB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c useradd -u 10000 -m -d /opt/data hermes # buildkit
# 2026-10-29 10:35:12 2.73KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/tini-shim.sh /usr/bin/tini # buildkit
# 2026-10-29 10:35:12 6.01MB 执行命令并创建新的镜像层
RUN |7 HERMES_BOT_DESKTOP=0 TARGETARCH=amd64 S6_OVERLAY_VERSION=3.2.3.0 S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563 S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581 S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e /bin/sh -c set -eu; case "${TARGETARCH:-amd64}" in amd64) s6_arch="x86_64"; s6_arch_sha="${S6_OVERLAY_X86_64_SHA256}" ;; arm64) s6_arch="aarch64"; s6_arch_sha="${S6_OVERLAY_AARCH64_SHA256}" ;; *) echo "Unsupported TARGETARCH=${TARGETARCH} for s6-overlay" >&2; exit 1 ;; esac; base="https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}"; curl -fsSL --retry 3 -o /tmp/s6-overlay-noarch.tar.xz "${base}/s6-overlay-noarch.tar.xz"; curl -fsSL --retry 3 -o /tmp/s6-overlay-symlinks-noarch.tar.xz "${base}/s6-overlay-symlinks-noarch.tar.xz"; curl -fsSL --retry 3 -o /tmp/s6-overlay-arch.tar.xz "${base}/s6-overlay-${s6_arch}.tar.xz"; { printf '%s %s\n' "${S6_OVERLAY_NOARCH_SHA256}" /tmp/s6-overlay-noarch.tar.xz; printf '%s %s\n' "${s6_arch_sha}" /tmp/s6-overlay-arch.tar.xz; printf '%s %s\n' "${S6_OVERLAY_SYMLINKS_SHA256}" /tmp/s6-overlay-symlinks-noarch.tar.xz; } > /tmp/s6-overlay.sha256; sha256sum -c /tmp/s6-overlay.sha256; tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz; tar -C / -Jxpf /tmp/s6-overlay-arch.tar.xz; tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz; rm /tmp/s6-overlay-*.tar.xz /tmp/s6-overlay.sha256 # buildkit
# 2026-10-29 10:35:11 0.00B 定义构建参数
ARG S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e
# 2026-10-29 10:35:11 0.00B 定义构建参数
ARG S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581
# 2026-10-29 10:35:11 0.00B 定义构建参数
ARG S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563
# 2026-10-29 10:35:11 0.00B 定义构建参数
ARG S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf
# 2026-10-29 10:35:11 0.00B 定义构建参数
ARG S6_OVERLAY_VERSION=3.2.3.0
# 2026-10-29 10:35:11 0.00B 定义构建参数
ARG TARGETARCH=amd64
# 2026-10-29 10:35:11 26.98KB 执行命令并创建新的镜像层
RUN |1 HERMES_BOT_DESKTOP=0 /bin/sh -c ln -sf libsqlite3.so.3.53.4 /usr/local/lib/libsqlite3.so.0 && ln -sf libsqlite3.so.3.53.4 /usr/local/lib/libsqlite3.so && printf '/usr/local/lib\n' > /etc/ld.so.conf.d/000-sqlite-fixed.conf && ldconfig && python3 -c "import sqlite3, sys; v = sqlite3.sqlite_version_info; sys.exit(f'linked SQLite {sqlite3.sqlite_version} still has the WAL-reset bug') if v < (3, 51, 3) else None; db = sqlite3.connect(':memory:'); db.execute(\"CREATE VIRTUAL TABLE docs USING fts5(content, tokenize='trigram')\"); db.execute(\"INSERT INTO docs VALUES ('hermes')\"); sys.exit('SQLite FTS5 trigram self-test failed') if db.execute(\"SELECT count(*) FROM docs WHERE docs MATCH 'erm'\").fetchone()[0] != 1 else None; db.close()" # buildkit
# 2026-10-29 10:35:10 1.72MB 复制新文件或目录到容器中
COPY /opt/sqlite-fixed/lib/libsqlite3.so.3.53.4 /usr/local/lib/ # buildkit
# 2026-10-29 10:35:10 0.00B 执行命令并创建新的镜像层
RUN |1 HERMES_BOT_DESKTOP=0 /bin/sh -c if [ "$HERMES_BOT_DESKTOP" = "1" ]; then apt-get -o Acquire::Retries=3 update && DEBIAN_FRONTEND=noninteractive apt-get -o Acquire::Retries=3 install -y --no-install-recommends tigervnc-standalone-server xfce4-panel xfwm4 xfdesktop4 xfce4-settings xfce4-terminal dbus-x11 x11-xserver-utils x11-utils x11-xkb-utils xauth fonts-dejavu-core chromium && rm -rf /var/lib/apt/lists/*; fi # buildkit
# 2026-10-29 10:35:10 0.00B 定义构建参数
ARG HERMES_BOT_DESKTOP=0
# 2026-10-29 10:35:10 817.75MB 执行命令并创建新的镜像层
RUN /bin/sh -c apt-get -o Acquire::Retries=3 update && apt-get -o Acquire::Retries=3 install -y --no-install-recommends ca-certificates curl iputils-ping python3 python-is-python3 gcc g++ make cmake python3-dev python3-venv libffi-dev libolm-dev libatomic1 procps git openssh-client docker-cli xz-utils tmux libasound2t64 libatk-bridge2.0-0t64 libatk1.0-0t64 libatspi2.0-0t64 libcairo2 libcups2t64 libdbus-1-3 libgbm1 libglib2.0-0t64 libnspr4 libnss3 libpango-1.0-0 libx11-6 libxcb1 libxcomposite1 libxdamage1 libxext6 libxfixes3 libxkbcommon0 libxrandr2 && rm -rf /var/lib/apt/lists/* # buildkit
# 2026-10-29 10:35:10 0.00B 设置环境变量 PLAYWRIGHT_BROWSERS_PATH
ENV PLAYWRIGHT_BROWSERS_PATH=/opt/hermes/tools
# 2026-10-29 10:35:10 0.00B 设置环境变量 PYTHONDONTWRITEBYTECODE
ENV PYTHONDONTWRITEBYTECODE=1
# 2026-10-29 10:35:10 0.00B 设置环境变量 PYTHONUNBUFFERED
ENV PYTHONUNBUFFERED=1
# 2026-10-21 05:32:55 120.11MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1792531975'
镜像信息
{
"Id": "sha256:42894428ebbf8c6076fad3df795d13f7584eafd7b30f2d1c196796455121da09",
"RepoTags": [
"nousresearch/hermes-agent:v0.23.0",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nousresearch/hermes-agent:v0.23.0"
],
"RepoDigests": [
"nousresearch/hermes-agent@sha256:adb7890916de63245523492be8f68f9d2095fecbec4e2a6dab7960381f0fc002",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nousresearch/hermes-agent@sha256:0dd31821db01611eaeedc44743260336c2d72bff47b9117b06313b29ca85ad76"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-11-05T20:03:44.164827196Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "root",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/hermes/bin:/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"PYTHONUNBUFFERED=1",
"PYTHONDONTWRITEBYTECODE=1",
"PLAYWRIGHT_BROWSERS_PATH=/opt/hermes/tools",
"HERMES_RUNTIME_DIR=/opt/hermes/tools",
"HERMES_PYTHON=/opt/hermes/.venv/bin/python",
"CC=gcc",
"CXX=g++",
"HERMES_WEB_DIST=/opt/hermes/hermes_cli/web_dist",
"HERMES_TUI_DIR=/opt/hermes/ui-tui",
"HERMES_HOME=/opt/data",
"HERMES_WRITE_SAFE_ROOT=/opt/data",
"XDG_RUNTIME_DIR=/tmp/hermes-runtime"
],
"Cmd": null,
"ArgsEscaped": true,
"Image": "",
"Volumes": {
"/opt/data": {}
},
"WorkingDir": "/opt/hermes",
"Entrypoint": [
"/opt/hermes/docker/entrypoint-dispatch.sh"
],
"OnBuild": null,
"Labels": null
},
"Architecture": "amd64",
"Os": "linux",
"Size": 3176711936,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/869e9f53d3b3ceefa8f588a38861a51b330788ef4d12c9f6d8841037f4572479/diff:/var/lib/docker/overlay2/e91de305c69bf846da173ff6621ab6656ef8f4ff03eb21dc8eea318557368f98/diff:/var/lib/docker/overlay2/723cc1c18eb3da17fa23f8cdcefd8c5d25ebb75093e741127a191c26fd97ef5a/diff:/var/lib/docker/overlay2/143dd5db12136c209aafef05bd96526030f025dbbbb9f4647b635522c7713d73/diff:/var/lib/docker/overlay2/5d02306bac54ef882da0e78ed6b1ba40c7fc825a8e7e8b082fe03537e31d4f97/diff:/var/lib/docker/overlay2/07176f77882e79cea2b8870e12c4a4dfbb2e4fa2b3c8aa71c43c9dd29745e0c6/diff:/var/lib/docker/overlay2/5a0e9fd4b6133a62162149a6f7231bfa2033f33db74e62717b31e57299417af5/diff:/var/lib/docker/overlay2/b4f16cd8820034a7edf36788f2f8bdb7f010b82d4c4d056fb87864616461f9ec/diff:/var/lib/docker/overlay2/efcf406fbcf982a2c07eb7533154c33f24fa907f7ede3814f38b5fb0afe80dda/diff:/var/lib/docker/overlay2/428977577e38742035e6d3542c0aaf0d379cdc620d5e0552667132375938e8c9/diff:/var/lib/docker/overlay2/de89b45e6751478ec01c0e905af00745e5d2f1087f99503a002716f737992dbf/diff:/var/lib/docker/overlay2/23d6768914870f1e5d59ca839e7498e36e366cf073a105443d15735e59b972c3/diff:/var/lib/docker/overlay2/cebdc682a371ce629b2355b5a687e225f249adf26d95acd16cb99c0a7c6bfa01/diff:/var/lib/docker/overlay2/8ad52bf4ca003da8673bfee45403f74877cb1c6be8c26629ec53217683df39f5/diff:/var/lib/docker/overlay2/26d26f37787f0666dd92f481031321d4d29bd332634ce0f5c856c34a862e2b5b/diff:/var/lib/docker/overlay2/8e4eb2f24318462fd0dc64582e33149fb75246eaf96e84d2c3d4c562095d44fa/diff:/var/lib/docker/overlay2/0aff9ed942aa72826bd734ff19ffc9d4207278acc514f5ebb6b40f77e851436d/diff:/var/lib/docker/overlay2/dbb052bcc81d18743878bf3cae5c720d96c30dc90666a4913be49b25122961c6/diff:/var/lib/docker/overlay2/ad328131b2ed3f0d492909ca46894067e421802eee2e5d7330d61e1bbe7e23b4/diff:/var/lib/docker/overlay2/8509595e1459bbd234ab0723d7cefbc1d29c4315f06cc000fe3e3df46a154f28/diff:/var/lib/docker/overlay2/4cddbc497bf339879d7bbb558fdbbbbf5e8722facdf16c140e101a4f7130b01d/diff:/var/lib/docker/overlay2/bed10e7ff7ed45b184d3499677cf2507d7dee7bfb4f116e28faa7325ec016c9b/diff:/var/lib/docker/overlay2/fbc3d3caec37be6bdfab0c38e04f3762b085ef2678aa3ff4bdb7911bac7f1260/diff:/var/lib/docker/overlay2/9fc3054b26c9fef49535f6c88e94c9ff90515611760a4f7014c702d95c7e6e8a/diff:/var/lib/docker/overlay2/3c9aaa5e2ac24cf577eaa0605d3ee92ea050accf66fb00f6a15a5ffd6a3e949b/diff:/var/lib/docker/overlay2/c15242e72eec0b4bda178b9341774b7ee9833c8d0a912dd9526d3d1c3b5ad403/diff:/var/lib/docker/overlay2/010effea54b927aebb0773f390e10e7e216e73725b4c4acc8c86fa85c05cacab/diff:/var/lib/docker/overlay2/5175dba01cc6dcb465eca4678aab845d446cdc56a3f35b8fab33880790910cc7/diff:/var/lib/docker/overlay2/2f73845dcb2477f019a16caa6f9fe4ffe5d1cb1da7bb37c1f64253789a5b7409/diff:/var/lib/docker/overlay2/ffc8387e6b4a12e183564125f706f4bdcbd6e8db2c6407aee08e90c006dee2b1/diff:/var/lib/docker/overlay2/d61539431921f2215bc5d4d17d6c60e687a5ac94068dd22e20da8a1c64cc81ba/diff:/var/lib/docker/overlay2/aeba74cdf79be2c87d9e35e7db2967f199684230c39057104fb0b2f5b8dae7af/diff:/var/lib/docker/overlay2/a9e69b38e2201dc329649f0f974269577ee21237c82ca7405318e48effb513d0/diff:/var/lib/docker/overlay2/4e40dc172897a610a55b804fba10368c6fe91764186f7e4967ee26a311fab5a4/diff:/var/lib/docker/overlay2/8b24468312f1763022ae82b961e1675e8d578c99bd906e81dea94db59306e3c4/diff:/var/lib/docker/overlay2/562e1b06ddf0c2313d4ec81188f15e7301e9c93769a75f7b3887a497a352949e/diff:/var/lib/docker/overlay2/177096749b652c1d9e17e12bdbb3cc00297ef9083f3315d5f3980648785bebf7/diff:/var/lib/docker/overlay2/ced6eae20e191c1a9f1430b14d14a03f25e98c8364cab062362a30d0d5828647/diff",
"MergedDir": "/var/lib/docker/overlay2/8da08376ef03152678833c095f2b555232974c79e3e69dc1bd9c13ec1c42d3e8/merged",
"UpperDir": "/var/lib/docker/overlay2/8da08376ef03152678833c095f2b555232974c79e3e69dc1bd9c13ec1c42d3e8/diff",
"WorkDir": "/var/lib/docker/overlay2/8da08376ef03152678833c095f2b555232974c79e3e69dc1bd9c13ec1c42d3e8/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:0fceba70669334d0c2890d8a9c5e8f0a8c153fde2d921de69084f3360e741c08",
"sha256:91fb7d998c83dd015d0926d7026c5d12a1643c9907a5112d2b723988100adbf9",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:aa8c31c585e36cc1591c4fad5b796d8ad8d7a62fe8b4e14f9f8f8773a56c77de",
"sha256:c1b0af0c5e4e79c45a32d5c6b3c00935b1b88b4bdf5135b13b81981e7ca885c5",
"sha256:b342ea4da0c0432382a9c9b54c3572d4f4c7e1b643abd66ed7545ece941680ef",
"sha256:4fecb1f18bc513d45510b133cf3d1e777434cd611224e5c51232c30498fe2f9d",
"sha256:672ea3227b0db8ebd03c91be522005f46f6f49dc1382e7fc53a45eaa65d0b4e7",
"sha256:2f2e2d06ccb1747fe7ceb29187ab2b3c1373e62f27b7837e6fd05af7417be199",
"sha256:99eb4f89ca16c45049ffba188fb0e6499012fea72f4712ad15c8c1b79c738206",
"sha256:a3cb3aebd6b0a89d4eb65d7aa290a9aa0ad892f44694cdb76752cac77de1d0cb",
"sha256:ddd0d70eee98bb1ba6989c289a390673157bdcbc8f440c608727a8ede23f516f",
"sha256:107d52925941a8315b3ea7c8c2863314df94462de52480f60525e49b5fee37b1",
"sha256:5fb846bdec7fbc01ee168980280cffdb17827c68810513df80333f89a3f4f3b6",
"sha256:8017f31816daa813020763b3d55d199e9e77937c2403e72691a4af795ba4c0b4",
"sha256:2b61d0d0d11a3499afe95ce9eb973a0e8f2dc820a17b3b3e7de70f6de1c37542",
"sha256:b3c9f0dff026ec42b61d770ac6bfd1185345551834fb2d7e9c60adc818257934",
"sha256:67468b84451b6c8984b71e85f3c25b8e471019946ed41ee65bc69d532e92509a",
"sha256:67283cd03792311bd372474c29ee2ed5d37ebd392fd4ee005b30983a1831b94a",
"sha256:970b17c5f89358b980820b3d7e1abe5eb22a8f4364bced3116eb2eed3e6e5bb9",
"sha256:79d5a28d1546c3550ac894c4dfda86aa0d86804449ebc01ca47eb5583cfdb971",
"sha256:24008e8daf5a7bc6bf25819cf76a897aaee97cf9ac43b99b63bc7408f3267021",
"sha256:bcb9f7ae4bdac46521064a51f8aca8949a398121d693335e95b626e6f9aad6a2",
"sha256:bd1c61242766e4df08f2bf32924e886ac59b82fc496be83b278ab98cbabf7ed6",
"sha256:977d0e605abf3fab4f3e2a425703017a17db072ac5518d843eaba4a51c05e5da",
"sha256:8133e94d9a2d7d79e1f81304ce0076c7d94fd93da8da687e84ebd7b9a6773833",
"sha256:4560a57da9bcaae4c2f1705f6bdbfec4dd6bd0659220ff483d62c9e0dbd9a112",
"sha256:cc7d9d1564871c6d4ae5a165f4772640556e2d23d4ffb1cf7c23b60cac6961db",
"sha256:b7d70a06c42e71d4469db325c9254cf5d8011af3013b695e0bdb579f17d3c9a2",
"sha256:0ca2283822ecbd81d879071587a81562361f94e5315efd974c82400992efe5be",
"sha256:814bda1dbce89b430c567da8145b1a16e4f3fb6974086b0014182b0545310831",
"sha256:99cce774baccaeff94c6854d97ebd5b17d620accc4bdbdbf68dc2cd52cda54cc",
"sha256:a3042b7243b31d9fd2db482c09b8677ac7315375bf04959871980450973a2715",
"sha256:4f6bf8d2cbad957703768df4136915709f7c028d4c179e57533c49c4b731be51",
"sha256:3e94f7d9cb1b3eb9fef1ae3e54b2c98effe374a8ae6f889cfff4b958c536e2d9",
"sha256:b92d559dd634afe4355042623025df3f4f6a0e67ecc8a52355bf3a3f60692f90",
"sha256:12b6c60c762726dd702d908326b818f392a16e56b76872fadabd13f6c3491cb7",
"sha256:a507cd8244fae4f5cbcc48a780926c6f038e472e0751259d44711c6097e875d9",
"sha256:441067cc9512fbe9b9fc7754893efab6543eaa595b5430c823057820991424fe"
]
},
"Metadata": {
"LastTagTime": "2026-11-09T10:46:26.402676811+08:00"
}
}