| FROM node:22-bookworm-slim | |
| ENV PIP_BREAK_SYSTEM_PACKAGES=1 | |
| # 1. 大幅瘦身 apt:加上 --no-install-recommends 剔除一切非必要依赖,秒级完成安装 | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| python3 \ | |
| python3-pip \ | |
| git \ | |
| curl \ | |
| ca-certificates \ | |
| ripgrep \ | |
| procps \ | |
| tree \ | |
| jq \ | |
| unzip \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 2. 安装核心 CLI 工具并清理 npm 缓存 | |
| RUN npm install -g @anthropic-ai/claude-code @cloudcli-ai/cloudcli task-master-ai pnpm \ | |
| && npm cache clean --force | |
| # 3. 创建挂载点与配置目录,并将所有权赋予 UID 1000 (node 用户) | |
| RUN mkdir -p /data /home/node/app /home/node/.claude /home/node/.cloudcli /home/node/.taskmaster && \ | |
| chown -R 1000:1000 /data /home/node | |
| # 4. 复制入口脚本并设置权限 | |
| COPY --chown=1000:1000 entrypoint.sh /entrypoint.sh | |
| RUN chmod +x /entrypoint.sh | |
| USER 1000 | |
| ENV HOME=/home/node | |
| ENV HOST=0.0.0.0 | |
| ENV PORT=7860 | |
| ENV SERVER_PORT=7860 | |
| WORKDIR /data/app | |
| EXPOSE 7860 | |
| ENTRYPOINT ["/entrypoint.sh"] | |
| CMD ["cloudcli"] | |
| # FROM node:22-bullseye-slim | |
| # # 安装 git, curl, bash 等开发工具 | |
| # RUN apt-get update && apt-get install -y \ | |
| # git \ | |
| # curl \ | |
| # ca-certificates \ | |
| # ripgrep \ | |
| # procps \ | |
| # && rm -rf /var/lib/apt/lists/* | |
| # # 全局安装 Claude Code CLI 和 CloudCLI | |
| # RUN npm install -g @anthropic-ai/claude-code @cloudcli-ai/cloudcli | |
| # # 创建挂载点 /data 以及家目录,并将所有权赋予 UID 1000 | |
| # RUN mkdir -p /data /home/node/app /home/node/.claude /home/node/.cloudcli && \ | |
| # chown -R 1000:1000 /data /home/node | |
| # # 复制入口脚本并设置权限 | |
| # COPY --chown=1000:1000 entrypoint.sh /entrypoint.sh | |
| # RUN chmod +x /entrypoint.sh | |
| # # 切换为 1000 用户 (node 用户) | |
| # USER 1000 | |
| # ENV HOME=/home/node | |
| # # 通过环境变量配置网络监听,避免命令行传参报错 | |
| # ENV HOST=0.0.0.0 | |
| # ENV PORT=7860 | |
| # ENV SERVER_PORT=7860 | |
| # WORKDIR /data/app | |
| # EXPOSE 7860 | |
| # ENTRYPOINT ["/entrypoint.sh"] | |
| # # 修正 CMD,直接调用 cloudcli(它会自动识别上面的 HOST 和 PORT 环境变量) | |
| # CMD ["cloudcli"] |