fix(docker): fix HERMES_UID permission handling and add docker-compose.yml

- Remove 'USER hermes' from Dockerfile so entrypoint runs as root and can
  usermod/groupmod before gosu drop. Add chmod -R a+rX /opt/hermes so any
  remapped UID can read the install directory.
- Fix entrypoint chown logic: always chown -R when HERMES_UID is remapped
  from default 10000, not just when top-level dir ownership mismatches.
- Add docker-compose.yml with gateway + dashboard services.
- Add .hermes to .gitignore.
This commit is contained in:
Jiecheng Wu 2026-04-21 19:12:15 +08:00 committed by Teknium
parent ccc8fccf77
commit 14c9f7272c
3 changed files with 49 additions and 4 deletions

30
docker-compose.yml Normal file
View file

@ -0,0 +1,30 @@
services:
gateway:
build: .
image: hermes-agent
container_name: hermes
restart: unless-stopped
network_mode: host
volumes:
- ~/.hermes:/opt/data
environment:
- HERMES_UID=${HERMES_UID:-1001}
- HERMES_GID=${HERMES_GID:-1001}
# Uncomment to expose API server beyond localhost (requires API_SERVER_KEY):
# - API_SERVER_HOST=0.0.0.0
# - API_SERVER_KEY=${API_SERVER_KEY}
command: ["gateway", "run"]
dashboard:
image: hermes-agent
container_name: hermes-dashboard
restart: unless-stopped
network_mode: host
depends_on:
- gateway
volumes:
- ~/.hermes:/opt/data
environment:
- HERMES_UID=${HERMES_UID:-1001}
- HERMES_GID=${HERMES_GID:-1001}
command: ["dashboard", "--host", "0.0.0.0", "--insecure"]