镜像构建历史
# 2026-10-15 14:20:46 0.00B 设置默认要执行的命令
CMD []
# 2026-10-15 14:20:46 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/opt/hermes/docker/entrypoint-dispatch.sh"]
# 2026-10-15 14:20:46 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/opt/data]
# 2026-10-15 14:20:46 0.00B 设置环境变量 HERMES_PYTHON
ENV HERMES_PYTHON=/opt/hermes/.venv/bin/python
# 2026-10-15 14:20:46 3.18KB 执行命令并创建新的镜像层
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-10-15 14:20:46 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-10-15 14:20:46 1.12KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/entrypoint-dispatch.sh /opt/hermes/docker/entrypoint-dispatch.sh # buildkit
# 2026-10-15 14:20:46 3.71KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/hermes-exec-shim.sh /opt/hermes/bin/hermes # buildkit
# 2026-10-15 14:20:46 0.00B 设置环境变量 XDG_RUNTIME_DIR
ENV XDG_RUNTIME_DIR=/tmp/hermes-runtime
# 2026-10-15 14:20:46 0.00B 设置环境变量 HERMES_WRITE_SAFE_ROOT
ENV HERMES_WRITE_SAFE_ROOT=/opt/data
# 2026-10-15 14:20:46 0.00B 设置环境变量 HERMES_HOME
ENV HERMES_HOME=/opt/data
# 2026-10-15 14:20:46 0.00B 设置环境变量 HERMES_TUI_DIR
ENV HERMES_TUI_DIR=/opt/hermes/ui-tui
# 2026-10-15 14:20:46 0.00B 设置环境变量 HERMES_WEB_DIST
ENV HERMES_WEB_DIST=/opt/hermes/hermes_cli/web_dist
# 2026-10-15 14:20:46 2.23KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/cont-init.d/02-reconcile-profiles /etc/cont-init.d/02-reconcile-profiles # buildkit
# 2026-10-15 14:20:46 4.00KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/cont-init.d/015-supervise-perms /etc/cont-init.d/015-supervise-perms # buildkit
# 2026-10-15 14:20:46 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-10-15 14:20:46 4.98KB 复制新文件或目录到容器中
COPY docker/s6-rc.d/ /etc/s6-overlay/s6-rc.d/ # buildkit
# 2026-10-15 14:20:46 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-10-15 14:20:46 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-10-15 14:20:46 0.00B 指定运行容器时使用的用户
USER root
# 2026-10-15 14:20:46 3.98MB 执行命令并创建新的镜像层
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-10-15 14:20:45 80.31MB 复制新文件或目录到容器中
COPY --chmod=a+rX,go-w . . # buildkit
# 2026-10-15 14:20:45 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-10-15 14:20:45 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-10-15 14:20:45 3.19MB 复制新文件或目录到容器中
COPY /opt/products/web /opt/hermes/hermes_cli/web_dist # buildkit
# 2026-10-15 14:20:45 3.96MB 复制新文件或目录到容器中
COPY /opt/products/tui /opt/hermes/ui-tui # buildkit
# 2026-10-15 14:20:44 88.02MB 执行命令并创建新的镜像层
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-10-15 14:20:42 64.71KB 复制新文件或目录到容器中
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-10-15 14:20:42 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-10-15 14:20:42 24.35MB 复制新文件或目录到容器中
COPY /opt/hermes/node_modules/typescript /opt/hermes/node_modules/typescript # buildkit
# 2026-10-15 14:20:24 471.37MB 执行命令并创建新的镜像层
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 # buildkit
# 2026-10-15 14:19:28 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-10-15 14:19:28 1.25MB 复制新文件或目录到容器中
COPY pyproject.toml uv.lock ./ # buildkit
# 2026-10-15 14:19:28 0.00B 设置环境变量 CC CXX
ENV CC=gcc CXX=g++
# 2026-10-15 14:19:28 0.00B 设置环境变量 HERMES_PYTHON
ENV HERMES_PYTHON=/usr/local/bin/python3
# 2026-10-15 14:19:28 2.12MB 执行命令并创建新的镜像层
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-10-15 14:19:27 1.54GB 执行命令并创建新的镜像层
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/agent-browser-executable-path # buildkit
# 2026-10-15 14:19:04 7.97KB 复制新文件或目录到容器中
COPY scripts/bundles/payload.py scripts/bundles/payload.py # buildkit
# 2026-10-15 14:19:04 14.25KB 复制新文件或目录到容器中
COPY hermes_cli/__init__.py hermes_cli/runtime_state.py hermes_cli/ # buildkit
# 2026-10-15 14:19:04 64.06KB 复制新文件或目录到容器中
COPY hermes_constants.py hermes_constants.py # buildkit
# 2026-10-15 14:19:04 660.64KB 复制新文件或目录到容器中
COPY pm/ pm/ # buildkit
# 2026-10-14 12:26:19 0.00B 设置环境变量 HERMES_RUNTIME_DIR
ENV HERMES_RUNTIME_DIR=/opt/hermes/tools
# 2026-10-14 12:26:19 0.00B 设置工作目录为/opt/hermes
WORKDIR /opt/hermes
# 2026-10-14 12:26:19 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-14 12:26:19 2.73KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/tini-shim.sh /usr/bin/tini # buildkit
# 2026-10-14 12:26:19 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-14 12:26:18 0.00B 定义构建参数
ARG S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e
# 2026-10-14 12:26:18 0.00B 定义构建参数
ARG S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581
# 2026-10-14 12:26:18 0.00B 定义构建参数
ARG S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563
# 2026-10-14 12:26:18 0.00B 定义构建参数
ARG S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf
# 2026-10-14 12:26:18 0.00B 定义构建参数
ARG S6_OVERLAY_VERSION=3.2.3.0
# 2026-10-14 12:26:18 0.00B 定义构建参数
ARG TARGETARCH=amd64
# 2026-10-14 12:26:18 26.71KB 执行命令并创建新的镜像层
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-14 12:26:18 1.72MB 复制新文件或目录到容器中
COPY /opt/sqlite-fixed/lib/libsqlite3.so.3.53.4 /usr/local/lib/ # buildkit
# 2026-10-14 12:25:54 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-14 12:25:54 0.00B 定义构建参数
ARG HERMES_BOT_DESKTOP=0
# 2026-10-14 12:25:54 847.36MB 执行命令并创建新的镜像层
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 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-14 12:25:54 0.00B 设置环境变量 PLAYWRIGHT_BROWSERS_PATH
ENV PLAYWRIGHT_BROWSERS_PATH=/opt/hermes/tools
# 2026-10-14 12:25:54 0.00B 设置环境变量 PYTHONDONTWRITEBYTECODE
ENV PYTHONDONTWRITEBYTECODE=1
# 2026-10-14 12:25:54 0.00B 设置环境变量 PYTHONUNBUFFERED
ENV PYTHONUNBUFFERED=1
# 2026-05-05 08:00:00 119.87MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1777939200'
镜像信息
{
"Id": "sha256:02e7aa0e84123fa0e9b22686e7a2bfb7d85fd59821d4d28812a3e07f3061cf41",
"RepoTags": [
"nousresearch/hermes-agent:v0.22.2",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nousresearch/hermes-agent:v0.22.2"
],
"RepoDigests": [
"nousresearch/hermes-agent@sha256:36099926da316742423544e055d4734777105ffe6341873af5459b957d0c2919",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nousresearch/hermes-agent@sha256:a11574b7fe8e1631d7d88d556677dac693bc058abf558cdeb899155688c1bf05"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-10-15T06:20:46.439224137Z",
"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": 3194640399,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/5b149fb8c23935f04d5a7615e6a03f43be993680f1e75ea07692b383fa78ce29/diff:/var/lib/docker/overlay2/6248ade00df6d78400001de9d7de60c28c55d6b7307dd7136623166faf7f4d49/diff:/var/lib/docker/overlay2/5c0f1932b0b22bcc78730391e486c3bc6d7e8d6e6d4387509a0b2e5e63fb241f/diff:/var/lib/docker/overlay2/0222b6508fd54c88a53eec4d4ef12276ca1134dcf675f5c90eab24cdbb9c2e15/diff:/var/lib/docker/overlay2/8f390b43b3959b1ce772c37629f1cc7d33b57b9534070dd82894e1017cd35e74/diff:/var/lib/docker/overlay2/77e2cb4f339f429e9b95bf15c59974bd0f631d34c25f20ce2d172da92dff8f81/diff:/var/lib/docker/overlay2/ff8a8f516c6a7fbb62710a742fb41d3843b19569f2d7a95799d3f2f3f9d2fce6/diff:/var/lib/docker/overlay2/2f901e6373fecf613ce811a01a820197bc880a98d8a45feba1594b3fcd67f09c/diff:/var/lib/docker/overlay2/4dba4c9ac02fa6c8c907bad031f162edb2911e8fa07d3f21fee01e1b744d2f46/diff:/var/lib/docker/overlay2/897a6fd93065b954783d5015323984d3bfc3d9801629d651faefdfa6a5b50291/diff:/var/lib/docker/overlay2/79141f752dd612a2a426c7029a9ed98ccdb4b46cd810475558a3f77e4bbe09e3/diff:/var/lib/docker/overlay2/fffb1581e04be55fe59d8da2b3e9714358a9e40409775e2a8f7486ddfb41e261/diff:/var/lib/docker/overlay2/99fc5483810687fd16cb3e794e8bf85c5fdcc0773d12a92221e30cf397ca26eb/diff:/var/lib/docker/overlay2/f5026b056b7aa976cdc2f0c98e6673878ba5c9a9859b066d51d3aafbf9e62eea/diff:/var/lib/docker/overlay2/da78950ed533424c11e37b60c26710ac610c781c86705796edb4ba31aa3c90a9/diff:/var/lib/docker/overlay2/de2a5dcac05f732d60042dd29e0c78058596d282e2850bbfb6f7829bc01fe2d9/diff:/var/lib/docker/overlay2/44498becc35b59e9974eb6671322ef9a2a6a89cefb9fe7c173948da87e0b7ae1/diff:/var/lib/docker/overlay2/18962a7492a539d20109cf9f7f4968b7d8730e14d039dafad632679f8869b090/diff:/var/lib/docker/overlay2/6e50b56c39ff5516bbdd0560b2d98a5bb6125bfc02d6ee568f7ff5e709989239/diff:/var/lib/docker/overlay2/ced54b26c8cf2a73619607f42cdd4a2df98567710a38573e30895da3e961dac7/diff:/var/lib/docker/overlay2/b42a0295c0c287abcb7eb4bfbb9e92b2346d79d751accd193a8b067581ccd397/diff:/var/lib/docker/overlay2/3b2b5dce0e60163c2edc183ccbb9fa6dd426b4cce90d1fbff60738ae06a27406/diff:/var/lib/docker/overlay2/05b8914e28c3ec495344caafd6c7e65c0156d25c62d8af8848a4cba507344b0a/diff:/var/lib/docker/overlay2/71a4f3d6cc38c043c56004043ae4b8315fd3f9baa6f509b584ca10300419b64b/diff:/var/lib/docker/overlay2/432e746dc47eefcb9e6efebd83041901b0d73d1789639f19e493df407d07a1c4/diff:/var/lib/docker/overlay2/5de543f1c1c249b37d340d4486e304a7a2fac6fcceaa8a4c29de4fb0f677b64d/diff:/var/lib/docker/overlay2/39260b2042bd9dabffee9786abc037a77180a6eae2b144ab0c111474395754b4/diff:/var/lib/docker/overlay2/510c208af84ac9f7280193dfc2c054ab2aa855eb18f329c98bb1ec64a6acefc5/diff:/var/lib/docker/overlay2/b8d5ce533460bb16280bd56de9119bcb4a888ab4f50abc79c1a7a5e72f2d334f/diff:/var/lib/docker/overlay2/6865ee9c0fca87ca49eb24256ab125fa1c1846b32e5d3f6b27b5b94aa97679bc/diff:/var/lib/docker/overlay2/edece3ddfda0e5b202dc5093efd46a063a3fd14dfe4bad4dd71544775a7c0eca/diff:/var/lib/docker/overlay2/b2917d17add9d27d81602a0c33f1e66328e56103f358ebfcfe2a1c0524992217/diff:/var/lib/docker/overlay2/42333765b2b8f94094c003c674282857ee9862181fad21238b3a4e8046a8be57/diff:/var/lib/docker/overlay2/2db40cd330124a9a4f14d8c446776c9b07c41dbd9344e09405717964f47331e0/diff:/var/lib/docker/overlay2/307926592f22dd5e6d9e7428c7f0d0a6766889312c6c2d1f5ec983c739b0b79e/diff:/var/lib/docker/overlay2/4d8f2eaf753018ad270c794c2eae6cf7dce5ee164141fab0624be6b67a0b62df/diff",
"MergedDir": "/var/lib/docker/overlay2/8d6ae449b1f54a8a82f0b93ff21d63c1c31edf93bfb85de6d933091f13e2722d/merged",
"UpperDir": "/var/lib/docker/overlay2/8d6ae449b1f54a8a82f0b93ff21d63c1c31edf93bfb85de6d933091f13e2722d/diff",
"WorkDir": "/var/lib/docker/overlay2/8d6ae449b1f54a8a82f0b93ff21d63c1c31edf93bfb85de6d933091f13e2722d/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:5222f025e44ae24949e8880713955891ae0bd339afd3adb699d66e1cd603e2fa",
"sha256:48f1c3749cff6ded05873526832cb6e8fe3e36f3b86cf3a9f07aa4ed8a361fd8",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:3f9b95176ae8ae4b3289383afb515f5844a962a939902696c5cf682f31290633",
"sha256:e19d7fb46e14f3c28702d6a3b84ac006a19e7553d280919c4427998a5b551612",
"sha256:b342ea4da0c0432382a9c9b54c3572d4f4c7e1b643abd66ed7545ece941680ef",
"sha256:f7801c29234037c3d43c951e7659e62046e545c473c661b0a53e6ef9fab6f7c0",
"sha256:a2913f0f348f4a0cd9714c72b63dbc212affb018848a735fe2b43ff7d8702fe9",
"sha256:a3087878c4f69fc65da448ca94e7860049ec4c3cdb6c18d09e18df62ae5c585c",
"sha256:5e1946d169b4aef6a678e53c7762579ed77a8c4530b38669db5e1381b2e3a342",
"sha256:160132b9865ba7010fd73b47b21d2786a6bd157cd0199b3286953f998d2edde4",
"sha256:a0a3a03c05ccd910e00097c8bf0b0ae4bb2025f7782acf2f7d4879156bd76a3e",
"sha256:1def0a3121b54b01bdbc181dce9b0d6acc562970f1eaf8e1d724dad7ad08ed58",
"sha256:15bcafb23eb3e6a427b85159d62ef7bbc1995641df6938e5561f72f74e5ecbad",
"sha256:02f56c384a7cc1ca7947fe7e354a6ed3088e42b992a165895670bda09ce9edcc",
"sha256:871ac596d820ab3ee3ab25e0211f1320433e642b06b59a5eb47db9eccbcf3b5c",
"sha256:9f8f549c2bb4eb98478fa3260cd355769a8963c45ed31097d6a75606b51591ce",
"sha256:43c356f4c02e5345857215e03e664a2d70b10194b14767bff0b0f83287394185",
"sha256:c7eef52361fc617bf71d7784c2da6bf400671613c791fe0c74f317bdf5608478",
"sha256:8bda37dd0dc0984fbe872a22f8a8a34584651bb0c329d3ed204bf276cff7f3ec",
"sha256:566bd6e5500cd3a3893be7dbe3a64719355d31ebd75fbb9b9a7e7c078c5019ee",
"sha256:70e12af267db7a1bf9f0c0bef328a2eaae197c84fa8a885d06f972c413e4959c",
"sha256:ce5b8313ed859828d233857db35503992f4a3b7cc1756c614f0b38442ca5a71c",
"sha256:1bd1c6181120e83dc601849f97a3e336d875b4f87971d19d9a3d95ae746ee3ab",
"sha256:ff5f45bfc00d0a65f172a175342e53c5e46f2d8aa64e26ab74043108844359c9",
"sha256:f2978b01557fb42704f6a74f981dca94722b2863182c4cbd20e16fae874539d3",
"sha256:d253a52ddbad8d65e0820f4cc95ac443a5b21a924cb8966ece8188362dc6ec10",
"sha256:32bb46c21c18d3dfd16f0a13766be917341bd3536e44ceaa62ee2d15cf6496ac",
"sha256:23c7d751483dcf1bf2cb2750a38e624bb09fe3e0e2cb1f65b631cc7719a55a52",
"sha256:892142289dfaf39413acde8f481ba062349a16410e2f1d46343ac9e519526c70",
"sha256:302c9e13b910b90b9c0f4cbd2a2beb549c183de57e4a9bf98561435a18a524d2",
"sha256:04607a74c1c267ed30fc44fa8db0cfa0fe2f377b7768cf564863b6513efc18fe",
"sha256:40304faac220a88ebac565a796b232a04ffa9f4f9c633d4d55f00a5db500d9da",
"sha256:3707eff76284c637ae35be3c5abbf56c8f78bc55e97e94f24fc7863f5235bdd3",
"sha256:013edcd61f0ed5eb13f2da4e174269bed469f29439fb17623c66b32e2ab81d3b",
"sha256:8c0e631305e3dc3a400b7fa491bfc441c048806687a81b7baf1a43f887df183c",
"sha256:676dff6a331f199ce474a9a570f09b3204dfa95f074b3a9cfc6dc4dfbfde3245"
]
},
"Metadata": {
"LastTagTime": "2026-10-19T18:29:29.504625724+08:00"
}
}