FROM node:22-bookworm-slim ENV PIP_BREAK_SYSTEM_PACKAGES=1 # 1. 安装基础依赖 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 工具(加入 global-agent) RUN npm install -g @anthropic-ai/claude-code @cloudcli-ai/cloudcli task-master-ai opencode-ai pnpm \ && npm cache clean --force # 3. 创建 codex wrapper RUN cat << 'EOF' > /usr/local/bin/codex #!/bin/bash if [ -z "$OPENAI_API_KEY" ] && [ -r /data/.codex/gw_token ]; then export OPENAI_API_KEY="$(cat /data/.codex/gw_token)" fi exec /usr/local/lib/node_modules/task-master-ai/node_modules/.bin/codex "$@" EOF RUN chmod +x /usr/local/bin/codex # 4. 创建挂载点与配置目录(增加 OpenCode 默认目录) RUN mkdir -p /data /home/node/app /home/node/.claude /home/node/.codex /home/node/.cloudcli /home/node/.taskmaster /home/node/.config /home/node/.local/share && \ chown -R 1000:1000 /data /home/node # 5. 复制入口脚本并设置权限 COPY entrypoint.sh /entrypoint.sh RUN chmod +x /entrypoint.sh ENV HOME=/home/node ENV HOST=0.0.0.0 ENV PORT=7860 ENV SERVER_PORT=7860 WORKDIR /home/node/app EXPOSE 7860 ENTRYPOINT ["/entrypoint.sh"] CMD ["cloudcli"]