wenyin commited on
Commit
05a2026
·
verified ·
1 Parent(s): 5bc8885

Update Dockerfile

Browse files
Files changed (1) hide show
  1. Dockerfile +26 -17
Dockerfile CHANGED
@@ -2,7 +2,7 @@ FROM docker.io/nikolaik/python-nodejs:python3.11-nodejs20
2
 
3
  USER root
4
 
5
- # 1. 基础依赖:包含 lsof, git, build-essential
6
  RUN apt-get update && apt-get install -y \
7
  ripgrep ffmpeg git lsof build-essential \
8
  && rm -rf /var/lib/apt/lists/*
@@ -15,25 +15,34 @@ RUN npm install -g hermes-web-ui
15
  RUN mkdir -p /home/user/.hermes /home/user/.hermes-web-ui
16
  COPY config.yaml /home/user/.hermes/config.yaml
17
 
18
- # 4. 权限与环境变量
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  RUN chown -R 1000:1000 /home/user
20
  USER 1000
21
  WORKDIR /home/user
22
  ENV HOME=/home/user
23
  ENV PATH="/home/user/.local/bin:${PATH}"
24
 
25
- # 5. 终极启动逻辑
26
- CMD sed -i "s/sk-666666/${GEMINI_API_KEY}/g" /home/user/.hermes/config.yaml && \
27
- sed -i "s/nvapi-666666/${NVIDIA_API_KEY}/g" /home/user/.hermes/config.yaml && \
28
- echo "Starting Hermes Gateway without systemd..." && \
29
- # 使用 run 代替 start,直接在前台非守护模式拉起进程
30
- hermes gateway run & \
31
- sleep 5 && \
32
- echo "Starting Hermes Web UI..." && \
33
- # 执行 Web UI 启动。无论成功与否,强制输出日志以供排查
34
- hermes-web-ui start --host 0.0.0.0 --port 7860 ; \
35
- echo "========= WEB UI SERVER LOG =========" && \
36
- cat /home/user/.hermes-web-ui/server.log || echo "No log file found." && \
37
- echo "=====================================" && \
38
- # 用 tail 挂起主进程,防止容器直接退出
39
- tail -f /home/user/.hermes-web-ui/server.log
 
2
 
3
  USER root
4
 
5
+ # 1. 基础依赖:包含 lsof, git, build-essential
6
  RUN apt-get update && apt-get install -y \
7
  ripgrep ffmpeg git lsof build-essential \
8
  && rm -rf /var/lib/apt/lists/*
 
15
  RUN mkdir -p /home/user/.hermes /home/user/.hermes-web-ui
16
  COPY config.yaml /home/user/.hermes/config.yaml
17
 
18
+ # 4. 编写稳如泰山的启动脚本
19
+ # 这个脚本保证无论谁崩溃,都会乖乖把 server.log 打印出来
20
+ RUN echo '#!/bin/bash\n\
21
+ # 注入 Key\n\
22
+ sed -i "s/sk-666666/${GEMINI_API_KEY}/g" /home/user/.hermes/config.yaml\n\
23
+ sed -i "s/nvapi-666666/${NVIDIA_API_KEY}/g" /home/user/.hermes/config.yaml\n\
24
+ \n\
25
+ echo "=> Starting Hermes Gateway..."\n\
26
+ hermes gateway run &\n\
27
+ sleep 5\n\
28
+ \n\
29
+ echo "=> Starting Hermes Web UI..."\n\
30
+ hermes-web-ui start --host 0.0.0.0 --port 7860\n\
31
+ \n\
32
+ echo "========= WEB UI SERVER LOG ========="\n\
33
+ cat /home/user/.hermes-web-ui/server.log || echo "Warning: log file not generated."\n\
34
+ echo "====================================="\n\
35
+ \n\
36
+ # 强行挂起主进程,防止容器重启\n\
37
+ tail -f /home/user/.hermes-web-ui/server.log /home/user/.hermes/logs/gateway.log\n\
38
+ ' > /home/user/start.sh && chmod +x /home/user/start.sh
39
+
40
+ # 5. 权限与环境切换
41
  RUN chown -R 1000:1000 /home/user
42
  USER 1000
43
  WORKDIR /home/user
44
  ENV HOME=/home/user
45
  ENV PATH="/home/user/.local/bin:${PATH}"
46
 
47
+ # 6. 执行脚本
48
+ CMD ["/home/user/start.sh"]