cc / Dockerfile
Selinore's picture
Update Dockerfile
f020d64 verified
Raw History Blame Contribute Delete
1.36 kB
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"]