refactor(docker): merge two-container setup into single container (#657)

* refactor(docker): merge two-container setup into single container

The Web UI already manages the Hermes Agent gateway lifecycle internally
via GatewayManager (spawn hermes gateway run --replace), making the
separate hermes-agent container redundant. The Dockerfile is built on
the hermes-agent base image, so all CLI tooling is already included.

- Remove hermes-agent service and shared volume from docker-compose.yml
- Remove gateway port mapping (8642-8670) — internal-only now
- Update docs/docker.md, README.md, README_zh.md for single-container setup

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* docs: remove version tag from image references

Use ekkoye8888/hermes-web-ui instead of ekkoye8888/hermes-web-ui:latest
to avoid pinning a specific version in documentation.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
ekko
2026-05-12 19:01:24 +08:00
committed by GitHub
parent 66111db7f1
commit b9b99042a0
4 changed files with 29 additions and 48 deletions
+4 -26
View File
@@ -1,43 +1,21 @@
services:
hermes-agent:
image: ${HERMES_AGENT_IMAGE:-nousresearch/hermes-agent:latest}
container_name: ${HERMES_AGENT_CONTAINER_NAME:-hermes-agent}
volumes:
- ${HERMES_DATA_DIR:-./hermes_data}:/home/agent/.hermes
- hermes-agent-src:/opt/hermes
environment:
- HERMES_HOME=/home/agent/.hermes
stdin_open: true
tty: true
restart: unless-stopped
ports:
- "8642-8670:8642-8670"
hermes-webui:
build:
context: .
dockerfile: Dockerfile
args:
BASE_IMAGE: ${HERMES_AGENT_IMAGE:-nousresearch/hermes-agent:latest}
image: ${WEBUI_IMAGE:-hermes-web-ui-local:latest}
container_name: ${WEBUI_CONTAINER_NAME:-hermes-webui}
entrypoint: ["node", "dist/server/index.js"]
depends_on:
- hermes-agent
ports:
- "${PORT:-6060}:${PORT:-6060}"
volumes:
- ${HERMES_DATA_DIR:-./hermes_data}:/home/agent/.hermes
- ${HERMES_DATA_DIR:-./hermes_data}/hermes-web-ui:/home/agent/.hermes-web-ui
- hermes-agent-src:/opt/hermes
environment:
- PORT=${PORT:-6060}
- HERMES_HOME=/home/agent/.hermes
- HERMES_BIN=${HERMES_BIN:-/opt/hermes/.venv/bin/hermes}
- HERMES_BIN=/opt/hermes/.venv/bin/hermes
- AUTH_DISABLED=${AUTH_DISABLED:-false}
- HERMES_ALLOW_ROOT_GATEWAY=${HERMES_ALLOW_ROOT_GATEWAY:-1}
- PATH=/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
- HERMES_ALLOW_ROOT_GATEWAY=1
restart: unless-stopped
volumes:
hermes-agent-src:
stdin_open: true
tty: true