File size: 2,226 Bytes
768d401
 
ae7b243
 
e274564
1bf4471
faa5e28
1bf4471
 
be1103a
2255055
768d401
ae7b243
768d401
9cec195
 
2186b25
82f5fc0
ae7b243
1bf4471
9cec195
e274564
 
222fdc5
 
 
e274564
 
 
 
 
 
faa5e28
e274564
 
 
 
9cec195
 
e274564
 
05a2026
 
768d401
 
 
ae7b243
 
2255055
be1103a
ae7b243
05a2026
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# update:#2026.4.21
FROM docker.io/nikolaik/python-nodejs:python3.11-nodejs20
USER root

# 1. 基础依赖
RUN apt-get update && apt-get install -y \
    ripgrep ffmpeg git lsof build-essential psmisc \
    && rm -rf /var/lib/apt/lists/*

# 2. 安装核心包
RUN pip install --no-cache-dir git+https://github.com/NousResearch/hermes-agent.git
RUN npm install -g hermes-web-ui@latest

# 🌟 关键修复:把 Web UI 全局安装目录的读写权限交给 user (1000)
RUN chown -R 1000:1000 /usr/local/lib/node_modules/hermes-web-ui

# 3. 配置文件预注入
RUN mkdir -p /home/user/.hermes /home/user/.hermes-web-ui
COPY config.yaml /home/user/.hermes/config.yaml

# 4. 生成稳如泰山的启动脚本
RUN { \
      echo '#!/bin/bash'; \
      echo '# 前台更新,确保完成后再启动服务'; \
      echo 'echo "=> Updating hermes-web-ui to latest..."'; \
      echo 'npm install -g hermes-web-ui@latest 2>&1 | tail -3'; \
      echo 'sed -i "s/sk-666666/${GEMINI_API_KEY}/g" /home/user/.hermes/config.yaml'; \
      echo 'sed -i "s/nvapi-666666/${NVIDIA_API_KEY}/g" /home/user/.hermes/config.yaml'; \
      echo 'echo "=> Starting Hermes Gateway..."'; \
      echo 'hermes gateway run &'; \
      echo 'sleep 5'; \
      echo 'echo "=> Starting Hermes Web UI..."'; \
      echo 'fuser -k 7860/tcp 2>/dev/null || true'; \
      echo 'hermes-web-ui start --host 0.0.0.0 --port 7860'; \
      echo 'echo "========= WEB UI SERVER LOG ========="'; \
      echo 'cat /home/user/.hermes-web-ui/server.log || echo "Warning: log file not generated."'; \
      echo 'echo "====================================="'; \
      echo '# 预创建日志文件防止 tail 报错'; \
      echo 'mkdir -p /home/user/.hermes/logs && touch /home/user/.hermes/logs/gateway.log'; \
      echo 'tail -f /home/user/.hermes-web-ui/server.log /home/user/.hermes/logs/gateway.log'; \
    } > /home/user/start.sh && chmod +x /home/user/start.sh

# 5. 权限与环境切换
RUN chown -R 1000:1000 /home/user \
    && chown -R 1000:1000 /usr/local/lib/node_modules \
    && chown -R 1000:1000 /usr/local/bin
USER 1000
WORKDIR /home/user
ENV HOME=/home/user
ENV PATH="/home/user/.local/bin:${PATH}"

# 6. 执行脚本
CMD ["/home/user/start.sh"]