镜像构建历史
# 2026-08-30 18:53:09 0.00B 设置默认要执行的命令
CMD []
# 2026-08-30 18:53:09 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["node" "dist/server/index.js"]
# 2026-08-30 18:53:09 0.00B 声明容器运行时监听的端口
EXPOSE [6060/tcp]
# 2026-08-30 18:53:09 0.00B 设置环境变量 PATH
ENV PATH=/opt/hermes/.venv/bin:/opt/hermes/bin:/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# 2026-08-30 18:53:09 0.00B 设置环境变量 HERMES_WEB_UI_MANAGED_GATEWAY
ENV HERMES_WEB_UI_MANAGED_GATEWAY=1
# 2026-08-30 18:53:09 0.00B 设置环境变量 HERMES_HOME
ENV HERMES_HOME=/home/agent/.hermes
# 2026-08-30 18:53:09 0.00B 设置环境变量 HOME
ENV HOME=/home/agent
# 2026-08-30 18:53:09 0.00B 设置环境变量 NODE_ENV
ENV NODE_ENV=production
# 2026-08-30 18:53:09 761.00B 执行命令并创建新的镜像层
RUN |1 NODE_VERSION=24.15.0 /bin/sh -c npm run verify:sharp-runtime # buildkit
# 2026-08-30 18:53:09 102.42MB 执行命令并创建新的镜像层
RUN |1 NODE_VERSION=24.15.0 /bin/sh -c npm run build && npm prune --omit=dev # buildkit
# 2026-08-30 18:51:49 47.86MB 复制新文件或目录到容器中
COPY . . # buildkit
# 2026-08-30 18:51:48 1.28GB 执行命令并创建新的镜像层
RUN |1 NODE_VERSION=24.15.0 /bin/sh -c npm ci --ignore-scripts && npm rebuild node-pty # buildkit
# 2026-08-30 18:51:28 0.00B 设置环境变量 NODE_OPTIONS
ENV NODE_OPTIONS=--max-old-space-size=4096
# 2026-08-30 18:51:28 463.66KB 复制新文件或目录到容器中
COPY package*.json ./ # buildkit
# 2026-08-30 18:51:28 0.00B 设置工作目录为/app
WORKDIR /app
# 2026-08-30 18:51:28 194.12MB 执行命令并创建新的镜像层
RUN |1 NODE_VERSION=24.15.0 /bin/sh -c ARCH=$(dpkg --print-architecture) && if [ "$ARCH" = "amd64" ]; then NODE_ARCH="x64"; else NODE_ARCH="$ARCH"; fi && echo "Downloading Node.js v${NODE_VERSION} for ${NODE_ARCH}" && curl -fsSL "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-${NODE_ARCH}.tar.gz" -o /tmp/node.tar.gz && rm -rf /usr/local/lib/node_modules/npm /usr/local/lib/node_modules/corepack /usr/local/bin/node /usr/local/bin/npm /usr/local/bin/npx /usr/local/bin/corepack && tar -xzf /tmp/node.tar.gz -C /usr/local --strip-components=1 && rm -f /tmp/node.tar.gz && node --version && npm --version # buildkit
# 2026-08-30 18:51:25 0.00B 执行命令并创建新的镜像层
RUN |1 NODE_VERSION=24.15.0 /bin/sh -c apt-get update && apt-get install -y --no-install-recommends ca-certificates curl ffmpeg make g++ && rm -rf /var/lib/apt/lists/* # buildkit
# 2026-08-30 18:51:25 0.00B 指定运行容器时使用的用户
USER root
# 2026-08-30 18:51:25 0.00B 定义构建参数
ARG NODE_VERSION=24.15.0
# 2026-08-30 16:26:16 0.00B 设置默认要执行的命令
CMD []
# 2026-08-30 16:26:16 0.00B 配置容器启动时运行的命令
ENTRYPOINT ["/opt/hermes/docker/entrypoint-dispatch.sh"]
# 2026-08-30 16:26:16 0.00B 创建挂载点用于持久化数据或共享数据
VOLUME [/opt/data]
# 2026-08-30 16:26:16 0.00B 执行命令并创建新的镜像层
RUN |7 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 HERMES_GIT_SHA=2a598aad1c398e95b3325a0f100f5c28efa63d12 /bin/sh -c mkdir -p /opt/data # buildkit
# 2026-08-30 16:26:16 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-08-30 16:26:16 1.12KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/entrypoint-dispatch.sh /opt/hermes/docker/entrypoint-dispatch.sh # buildkit
# 2026-08-30 16:26:16 3.71KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/hermes-exec-shim.sh /opt/hermes/bin/hermes # buildkit
# 2026-08-30 16:26:16 0.00B 设置环境变量 HERMES_LAZY_INSTALL_TARGET
ENV HERMES_LAZY_INSTALL_TARGET=/opt/data/lazy-packages
# 2026-08-30 16:26:16 0.00B 设置环境变量 HERMES_DISABLE_LAZY_INSTALLS
ENV HERMES_DISABLE_LAZY_INSTALLS=1
# 2026-08-30 16:26:16 0.00B 设置环境变量 HERMES_WRITE_SAFE_ROOT
ENV HERMES_WRITE_SAFE_ROOT=/opt/data
# 2026-08-30 16:26:16 0.00B 设置环境变量 HERMES_HOME
ENV HERMES_HOME=/opt/data
# 2026-08-30 16:26:16 0.00B 设置环境变量 HERMES_TUI_DIR
ENV HERMES_TUI_DIR=/opt/hermes/ui-tui
# 2026-08-30 16:26:16 0.00B 设置环境变量 HERMES_WEB_DIST
ENV HERMES_WEB_DIST=/opt/hermes/hermes_cli/web_dist
# 2026-08-30 16:26:16 2.23KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/cont-init.d/02-reconcile-profiles /etc/cont-init.d/02-reconcile-profiles # buildkit
# 2026-08-30 16:26:16 4.00KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/cont-init.d/015-supervise-perms /etc/cont-init.d/015-supervise-perms # buildkit
# 2026-08-30 16:26:16 66.00B 执行命令并创建新的镜像层
RUN |7 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 HERMES_GIT_SHA=2a598aad1c398e95b3325a0f100f5c28efa63d12 /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-08-30 16:26:16 5.04KB 复制新文件或目录到容器中
COPY docker/s6-rc.d/ /etc/s6-overlay/s6-rc.d/ # buildkit
# 2026-08-30 16:26:16 208.00B 执行命令并创建新的镜像层
RUN |7 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 HERMES_GIT_SHA=2a598aad1c398e95b3325a0f100f5c28efa63d12 /bin/sh -c set -eu; if [ -n "${HERMES_GIT_SHA}" ]; then printf '%s\n' "${HERMES_GIT_SHA}" > /opt/hermes/.hermes_build_sha; fi; mkdir -p /etc/hermes; HERMES_GIT_SHA="${HERMES_GIT_SHA}" python3 -c 'import json, os, pathlib, tomllib; project = tomllib.loads(pathlib.Path("/opt/hermes/pyproject.toml").read_text(encoding="utf-8"))["project"]; 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": os.environ.get("HERMES_GIT_SHA") or None}, sort_keys=True, separators=(",", ":")) + "\n", encoding="utf-8"); marker.chmod(0o444)' # buildkit
# 2026-08-30 16:26:16 0.00B 定义构建参数
ARG HERMES_GIT_SHA=2a598aad1c398e95b3325a0f100f5c28efa63d12
# 2026-08-30 16:26:16 3.72KB 执行命令并创建新的镜像层
RUN |6 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-08-30 16:26:16 0.00B 指定运行容器时使用的用户
USER root
# 2026-08-30 16:26:16 253.24KB 执行命令并创建新的镜像层
RUN |6 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 uv pip install --no-cache-dir --no-deps -e "." # buildkit
# 2026-08-30 16:26:11 65.76MB 复制新文件或目录到容器中
COPY --chmod=a+rX,go-w . . # buildkit
# 2026-08-30 10:14:37 11.93MB 执行命令并创建新的镜像层
RUN |6 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 web && npm run build && cd ../ui-tui && npm run build # buildkit
# 2026-08-30 10:14:24 92.41KB 复制新文件或目录到容器中
COPY apps/shared/ apps/shared/ # buildkit
# 2026-08-30 10:14:24 3.59MB 复制新文件或目录到容器中
COPY ui-tui/ ui-tui/ # buildkit
# 2026-08-30 09:43:23 2.57MB 复制新文件或目录到容器中
COPY web/ web/ # buildkit
# 2026-08-30 09:43:23 343.73MB 执行命令并创建新的镜像层
RUN |6 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 uv sync --frozen --no-install-project --extra all --extra messaging --extra otlp --extra anthropic --extra bedrock --extra azure-identity --extra hindsight --extra matrix # buildkit
# 2026-08-30 09:42:16 0.00B 执行命令并创建新的镜像层
RUN |6 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-08-30 09:42:16 751.76KB 复制新文件或目录到容器中
COPY pyproject.toml uv.lock ./ # buildkit
# 2026-08-30 09:42:16 94.48MB 执行命令并创建新的镜像层
RUN |6 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-08-30 09:42:12 74.48KB 复制新文件或目录到容器中
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-08-30 09:42:12 762.67MB 执行命令并创建新的镜像层
RUN |6 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 npm install --prefer-offline --no-audit --fetch-retries=5 && for i in 1 2 3; do npx playwright install --with-deps chromium --only-shell && break || { [ "$i" = 3 ] && exit 1; echo "playwright install failed (attempt $i); retrying in 10s"; sleep 10; }; done && npm cache clean --force # buildkit
# 2026-08-30 09:41:48 0.00B 设置环境变量 npm_config_install_links
ENV npm_config_install_links=false
# 2026-08-30 09:41:48 92.41KB 复制新文件或目录到容器中
COPY apps/shared/ apps/shared/ # buildkit
# 2026-08-29 03:24:07 1.36MB 复制新文件或目录到容器中
COPY ui-tui/packages/hermes-ink/ ui-tui/packages/hermes-ink/ # buildkit
# 2026-08-29 03:24:07 1.34KB 复制新文件或目录到容器中
COPY ui-tui/package.json ui-tui/ # buildkit
# 2026-08-29 03:24:07 1.63KB 复制新文件或目录到容器中
COPY web/package.json web/ # buildkit
# 2026-08-29 03:24:07 723.87KB 复制新文件或目录到容器中
COPY package.json package-lock.json ./ # buildkit
# 2026-08-28 04:50:46 0.00B 设置工作目录为/opt/hermes
WORKDIR /opt/hermes
# 2026-08-28 04:50:46 92.00B 执行命令并创建新的镜像层
RUN |6 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 ln -sf /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm && ln -sf /usr/local/lib/node_modules/npm/bin/npx-cli.js /usr/local/bin/npx # buildkit
# 2026-08-28 04:50:46 12.08MB 复制新文件或目录到容器中
COPY /usr/local/lib/node_modules/npm /usr/local/lib/node_modules/npm # buildkit
# 2026-08-28 04:50:46 148.01MB 复制新文件或目录到容器中
COPY --chmod=0755 /usr/local/bin/node /usr/local/bin/ # buildkit
# 2026-08-28 04:50:46 58.39MB 复制新文件或目录到容器中
COPY --chmod=0755 /usr/local/bin/uv /usr/local/bin/uvx /usr/local/bin/ # buildkit
# 2026-08-28 04:50:46 8.95KB 执行命令并创建新的镜像层
RUN |6 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-08-28 04:50:46 2.73KB 复制新文件或目录到容器中
COPY --chmod=0755 docker/tini-shim.sh /usr/bin/tini # buildkit
# 2026-08-28 04:50:46 6.01MB 执行命令并创建新的镜像层
RUN |6 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-08-28 04:50:45 0.00B 定义构建参数
ARG S6_OVERLAY_SYMLINKS_SHA256=a60dc5235de3ecbcf874b9c1f18d73263ab99b289b9329aa950e8729c4789f0e
# 2026-08-28 04:50:45 0.00B 定义构建参数
ARG S6_OVERLAY_AARCH64_SHA256=0952056ff913482163cc30e35b2e944b507ba1025d78f5becbb89367bf344581
# 2026-08-28 04:50:45 0.00B 定义构建参数
ARG S6_OVERLAY_X86_64_SHA256=a93f02882c6ed46b21e7adb5c0add86154f01236c93cd82c7d682722e8840563
# 2026-08-28 04:50:45 0.00B 定义构建参数
ARG S6_OVERLAY_NOARCH_SHA256=b720f9d9340efc8bb07528b9743813c836e4b02f8693d90241f047998b4c53cf
# 2026-08-28 04:50:45 0.00B 定义构建参数
ARG S6_OVERLAY_VERSION=3.2.3.0
# 2026-08-28 04:50:45 0.00B 定义构建参数
ARG TARGETARCH=amd64
# 2026-08-28 04:50:45 43.76KB 执行命令并创建新的镜像层
RUN /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-08-28 04:50:45 1.72MB 复制新文件或目录到容器中
COPY /opt/sqlite-fixed/lib/libsqlite3.so.3.53.4 /usr/local/lib/ # buildkit
# 2026-08-28 04:50:45 1.06GB 执行命令并创建新的镜像层
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 ripgrep ffmpeg gcc g++ make cmake python3-dev python3-venv libffi-dev libolm-dev libatomic1 procps git openssh-client docker-cli xz-utils && rm -rf /var/lib/apt/lists/* # buildkit
# 2026-08-28 04:50:45 0.00B 设置环境变量 PLAYWRIGHT_BROWSERS_PATH
ENV PLAYWRIGHT_BROWSERS_PATH=/opt/hermes/.playwright
# 2026-08-28 04:50:45 0.00B 设置环境变量 PYTHONDONTWRITEBYTECODE
ENV PYTHONDONTWRITEBYTECODE=1
# 2026-08-28 04:50:45 0.00B 设置环境变量 PYTHONUNBUFFERED
ENV PYTHONUNBUFFERED=1
# 2026-05-05 08:00:00 119.87MB
# debian.sh --arch 'amd64' out/ 'trixie' '@1777939200'
镜像信息
{
"Id": "sha256:c3be5859ad8f4b9b3c70f2396667d68aa39f6256a414276b0cfbac16487a1ffb",
"RepoTags": [
"ekkoye8888/hermes-web-ui:v0.7.12",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ekkoye8888/hermes-web-ui:v0.7.12"
],
"RepoDigests": [
"ekkoye8888/hermes-web-ui@sha256:fa15d19a5835d758891d695f6d5f6ecd2bf5c6970acf85adb1bfbd1cf00895d0",
"swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/ekkoye8888/hermes-web-ui@sha256:fbeb0c24fc190b045cf237611519370c0deba658c1c1d535c177258a1a9fc711"
],
"Parent": "",
"Comment": "buildkit.dockerfile.v0",
"Created": "2026-08-30T10:53:09.602857714Z",
"Container": "",
"ContainerConfig": null,
"DockerVersion": "",
"Author": "",
"Config": {
"Hostname": "",
"Domainname": "",
"User": "root",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"ExposedPorts": {
"6060/tcp": {}
},
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
"PATH=/opt/hermes/.venv/bin:/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/.playwright",
"npm_config_install_links=false",
"HERMES_WEB_DIST=/opt/hermes/hermes_cli/web_dist",
"HERMES_TUI_DIR=/opt/hermes/ui-tui",
"HERMES_HOME=/home/agent/.hermes",
"HERMES_WRITE_SAFE_ROOT=/opt/data",
"HERMES_DISABLE_LAZY_INSTALLS=1",
"HERMES_LAZY_INSTALL_TARGET=/opt/data/lazy-packages",
"NODE_OPTIONS=--max-old-space-size=4096",
"NODE_ENV=production",
"HOME=/home/agent",
"HERMES_WEB_UI_MANAGED_GATEWAY=1"
],
"Cmd": null,
"ArgsEscaped": true,
"Image": "",
"Volumes": {
"/opt/data": {}
},
"WorkingDir": "/app",
"Entrypoint": [
"node",
"dist/server/index.js"
],
"OnBuild": null,
"Labels": {
"org.opencontainers.image.revision": "2a598aad1c398e95b3325a0f100f5c28efa63d12"
}
},
"Architecture": "amd64",
"Os": "linux",
"Size": 4313867999,
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/707f2463994b518d695cb5de7958d3591b6bb8745d7ccc4804461c4d6317f65a/diff:/var/lib/docker/overlay2/f469e96059da04dd6f2406cd39d5d87c3046ad468cd1d1bc318118778b75f546/diff:/var/lib/docker/overlay2/5c07c21ba6fbee1971a1a3379eeca36c0d804ee60a11f3011e46bb38919aec40/diff:/var/lib/docker/overlay2/4f3a1ef4f7e816d20b7605dc98b92e90cf017794627a824ed912f4c2e3ecd4ee/diff:/var/lib/docker/overlay2/b43f8537f5ccb9f333dcdbed559b3a9d70c6136fafedaa230bcc5db4f778fb6a/diff:/var/lib/docker/overlay2/f9b247964ef5e53381a7d17e5063eeb77b47035d1d083a7df7527b821d54c3b2/diff:/var/lib/docker/overlay2/99aad2a6b3f1c585c94b69f66385745c315f7ae6ee89557021236c11fc791137/diff:/var/lib/docker/overlay2/6f4d2a0fe2c42515f3973affc9b2c2376c292862c493cce5a2a653368c0ae5fc/diff:/var/lib/docker/overlay2/285da69f98487f7c7dd40d5e97cea3a5730e2fbfdac9b99d3fa803c3baa5aa0b/diff:/var/lib/docker/overlay2/628c06b1f88ce8bcdb727b0a8cd09b937ff4b47199dd8d10e35ec532abc07ee1/diff:/var/lib/docker/overlay2/5d4b5c41572a181f419c22814ff641ad6714015034e134f8cc5387713531ba66/diff:/var/lib/docker/overlay2/cd2dfd5ae5fc924519131e4228499e81907be7ad9bfc603cca8155526b6eaa1b/diff:/var/lib/docker/overlay2/cf7d07592d96b3d73834b48d1fb27b3cbedae28edaa87dde446e0b00eecfb676/diff:/var/lib/docker/overlay2/8f4d45dce6147b2dc391cc268aa0c7ed690d07601fddeb468c46c937894e4b7b/diff:/var/lib/docker/overlay2/e1e5032bf32b59b7e9ca0e47bf190a6bf61770c19cb57d09f70c75480cb94471/diff:/var/lib/docker/overlay2/5d0d56ad86627b32261195234d4581444cdbd1ee8f06714335c13f780490f674/diff:/var/lib/docker/overlay2/19e915b0e13197036e40de12d191500b3d55867af9d45122fb1588e4732ccc95/diff:/var/lib/docker/overlay2/d6219dec748cb8aa4e12aaf2306fc556db70d0aa9fd2e0e6d9ccbc71e3e274bf/diff:/var/lib/docker/overlay2/20e09165e5974e900ff7e94e7bd8bce288dd7fed52e49b1f5a3519d9ce4072dd/diff:/var/lib/docker/overlay2/d00e356fcda44605757be42ef4930e36e83f563b005d2d6b5841c721be0745bf/diff:/var/lib/docker/overlay2/f9c71bbf9a596f33e6e71fa664bbd987a48dba27405cbee7be9fec15a424081c/diff:/var/lib/docker/overlay2/5862f0145582ee6d9b1b71d1bacb068e1dafafd468d08bf4b6a323524c426e4c/diff:/var/lib/docker/overlay2/770158c4a22b589312869a24be5e7bad8c47bd1b0023542801d785686b6c944c/diff:/var/lib/docker/overlay2/5a01dbc0a8f3c795b410cac66863f100ba609ad071a16ea4d58e45c42044dd20/diff:/var/lib/docker/overlay2/d274526adac3f5ff287059f9c21bf3ded14ebd44345bf844c37503e8e65d80e0/diff:/var/lib/docker/overlay2/2d8d04126258aa66c857b4f48c91bdfc444eeb6d1c87d48f48bfef61ec147b3e/diff:/var/lib/docker/overlay2/34a9a5bea823e6ccf71cfebd4eda1f0abc9d7ce6b45e5a32d22095499a685986/diff:/var/lib/docker/overlay2/090ab51ee1dd7d591d851d5db0bbdf910687c3963e9533c3a4302fd55b23744a/diff:/var/lib/docker/overlay2/73458db9accc99d12c6802daa4d71818ce3db32ab638ebc06ced608f41ca73f8/diff:/var/lib/docker/overlay2/d37cf7578d786a740a79edcc2ecffb30482550652033ed523572991335148736/diff:/var/lib/docker/overlay2/13b8243c8a41a5609af9de4f372ca1632c5b9049e2f08c6d6a2aa5b8e2464fa3/diff:/var/lib/docker/overlay2/9dbdc16afbc3354d1f4ba199380546f378bff4b62a541a70d7696b315210b4c4/diff:/var/lib/docker/overlay2/d31db350dbf457767ada88ec9e545ce7e428d08503b0bfba9a60844da91a5c15/diff:/var/lib/docker/overlay2/c692e96f537353effc56dcf9b183d6e7d99171547458fa6c8471927d6a67a1f8/diff:/var/lib/docker/overlay2/acd0bdbf8d1d70cbc9c1c615a87c87c3161e885bd40c50bf1ac8d1391e078d26/diff:/var/lib/docker/overlay2/696f4f77dc19a19db4907a4643474c189ec5cc33f2544bc31353915479db9eef/diff:/var/lib/docker/overlay2/cf9a6859a3b90ca342659f96134d5bbdfe623a0ca108b946062eb46041aeee8a/diff:/var/lib/docker/overlay2/cffbc4617d4fe5d2c1b9a4da3ca91f630b929f31ba7c2203a5a175d157a299b6/diff:/var/lib/docker/overlay2/1cd43b5171a47a7a308de149452da0cf7b56c8ba6dfeba19a19fefd042b86a60/diff:/var/lib/docker/overlay2/1339a69269d752b33268f6f3b20861ca9405ac7b5e99c7c579fb9a53ff452cdc/diff:/var/lib/docker/overlay2/e6a08591c98f54f5b3d89cdf547ccd47ec1c3b4ce3b36acd5c09256c22c709ca/diff:/var/lib/docker/overlay2/18279fced44109b36db15cdf01487187da0a84d5644e29f50e7e56612cd47eb5/diff:/var/lib/docker/overlay2/6a96b619214e3c52ae5ba4d248df6ba58733cf98ef05fd51eb0d527dc4ea776f/diff:/var/lib/docker/overlay2/520201f80950f76f1e39156a091e7ef92646c933c2dda4d5f465f24e3e47a8db/diff:/var/lib/docker/overlay2/13c2cf60b1ca81fde16a4b0757efa3467abbb8c99156cefa2cee1a0cfd5288db/diff",
"MergedDir": "/var/lib/docker/overlay2/b49ea5b6701ad97865f903a50ecbdaf6fab2613a4c915056bee918e844da660a/merged",
"UpperDir": "/var/lib/docker/overlay2/b49ea5b6701ad97865f903a50ecbdaf6fab2613a4c915056bee918e844da660a/diff",
"WorkDir": "/var/lib/docker/overlay2/b49ea5b6701ad97865f903a50ecbdaf6fab2613a4c915056bee918e844da660a/work"
},
"Name": "overlay2"
},
"RootFS": {
"Type": "layers",
"Layers": [
"sha256:5222f025e44ae24949e8880713955891ae0bd339afd3adb699d66e1cd603e2fa",
"sha256:f40c3ba877ca32ed30a1a99f3619a92cc59b128ef42879409c585e4c482a74e9",
"sha256:78a88de02b56c7922f82d553f31329189d7cb777cb9aed397da207289357ac1c",
"sha256:2b29aff22c15ce9332dd2b819b2800f45f336ba1945eebec5de7c4a4d697cb17",
"sha256:b342ea4da0c0432382a9c9b54c3572d4f4c7e1b643abd66ed7545ece941680ef",
"sha256:531e07452c084ba9a016862e3960e503d0b0ebccfd2bde8fd382c97b28743341",
"sha256:73fc700798702f5fffbe1c5d2b0719da8ab08aa512b94f483c29c1691425f009",
"sha256:2f6ea1196f9731491445298c9e11bfdd05950f02c02d90030a22f9bf65748314",
"sha256:c6bd7d9bdcc52dbaa7cb26b52dd64e32bc6b0405c8613a05e4d3d85c6905d11e",
"sha256:d8248af6f9ef53531803eeac28c75e03f1c8296d355ab69f55ae4f3235a88391",
"sha256:c42766287987fc5d38fedabc246fd0cfa2c84b3abd64a12958470a3f6b16aa9b",
"sha256:3bab78b084a0090dd4a762fd665cee48d1ed409b3117c2cc5c3e6f741234bc95",
"sha256:228c709fcf618f943a381b5254d345480b6a91f89e6661d3c2dd15ff444a34f4",
"sha256:f5fc60c4b62140bd12d980fc1233451c8dc09f4434552556295f07e055396c93",
"sha256:8f02f623119a737b0e1ffca892685b983ba6e9b204e0c137bc578dae9aa263ff",
"sha256:cece57c38ffd3d7242c3cf8baa40acf4a0dba404124fd1d2acf89c75950a506b",
"sha256:91f93816b5c7c9c8d334ca15d49cf876a376a71056b7c17b7e3c7a9e7442bc86",
"sha256:632aa562bf957aa1bc7d3b312f4db9048b379a0008d1d5de9727aabf1c1e8f4b",
"sha256:40c98814ed33da24442f7d6a4e1054820ed0079c931f441449625c49d5714191",
"sha256:d5be9aeaa45b2a80ce0281b12486a1b2ae62c23ec90d666480cf56b25e3713eb",
"sha256:e536b51d032984a203e870e6a899c3631f925c3ef3b3eafa89ed85a46730bb8f",
"sha256:e8bd85d11ab3b382f1b4826b25e43df2ba5b5ba0f618f97ca6c20265d4a2f43a",
"sha256:1f5c9eab31d2af259e5406e9f71d832b5a16723a0c2db99e72fa2884bb831182",
"sha256:1af4c3c7d290e81b622f6c6f459f3d17115d24269228dfdc1f46d3a1fc4f2cb7",
"sha256:b675104070d20abba874a29334b5af03f259572a5d6f09818d241c4e1810ebc4",
"sha256:d22c6d86a9cc98fdff51e26448816d4a57b35f8a591c86ecb7812c39c60700ec",
"sha256:839a4aa7b617c9583b4541f762d26f1eeae3ae30687e9f011b84a1f3eaa27496",
"sha256:e8a61844ed24b4ccf7f56f16e904db7411d775bd23be426abd400e60226531eb",
"sha256:76ce7c962fc70c884145234f7a64f4ad6e17f34541703361458d049279140a71",
"sha256:4c96c116b845c6251ee06d64de464985ab4d93a5c9a92b73929e9c9a49b64853",
"sha256:2407b1a70ac04f112841bbec934754289918d0bceb68191bdd09b49da252200b",
"sha256:79dcbab077e4a21715dbeb420da1750004b5e0caea129d71104ba94ffef6e9f8",
"sha256:3e69a20ba93ee736a2cd2ab8350e283140483039ad384f17ee86c6bc9dceffb3",
"sha256:207c5b8655cfb527b67977249f09878f2c842a9839e36261ced9d86f4325fab4",
"sha256:f5debae28815f162420953237f7a6fea3d853707f45c616f4427ebb0cbbb9067",
"sha256:f233d4106a33e505f1524b4bde477947929b38b817eccc3ae724693c59976078",
"sha256:725a39c9a51ba583d9019426b56688b80dc9865ff43b16579fff2e1661accdfa",
"sha256:5f70bf18a086007016e948b04aed3b82103a36bea41755b6cddfaf10ace3c6ef",
"sha256:9d70a975e5c7129be9d4713a67aaf4b79a0b9fb7770ce12fe948ef02079837c4",
"sha256:3519deaa838fe87db916b841110f04516b622ae7d72b5623112407c7210d76c6",
"sha256:b4ccb1d589e8a5713cd98e519a9400520b140c5bbbb0aac1cc1f161051c72a0f",
"sha256:d79daa5c01622cb2c46348756f03c2bbc95a397d94c914bcff4c02c016af80ce",
"sha256:0ce4ce15d250dc63f3bbffba15360ab656c36e8985d333b918127dbaa9978f3b",
"sha256:4df6caf69b883f377b1def16e43268093b9a75ac9f63e8f94d3b1aee104fe03d",
"sha256:a1a4624b37a45a98c6e3bb755e95bece2f9007eec1d506224097686abfdc6656",
"sha256:e44f585ec7fdcfd5c1dc81f1d39a13dcb679ed0b76af9bfda07c210172937ab1"
]
},
"Metadata": {
"LastTagTime": "2026-08-31T09:30:01.482524274+08:00"
}
}