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