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"] |