Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit a9850ee

Browse files
authored
Update README.md
1 parent 4c207bb commit a9850ee

File tree

1 file changed

+310
-1
lines changed

1 file changed

+310
-1
lines changed

‎README.md‎

Lines changed: 310 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,310 @@
1-
# coder-docker
1+
# coder-docker
2+
优化这个 Dockerfile,添加 CLI 配置文件管理和外部目录映射支持:
3+
4+
```dockerfile
5+
FROM node:20-slim
6+
7+
ENV DEBIAN_FRONTEND=noninteractive
8+
ENV TERM=xterm-256color
9+
10+
WORKDIR /workspace
11+
12+
# Install basic dependencies
13+
RUN apt-get update && apt-get install -y \
14+
git \
15+
curl \
16+
wget \
17+
ca-certificates \
18+
&& rm -rf /var/lib/apt/lists/*
19+
20+
# Install all npm-based AI coding tools
21+
RUN npm install -g \
22+
@openai/codex \
23+
@google/gemini-cli \
24+
@anthropic-ai/claude-code \
25+
@continuedev/cli \
26+
@sourcegraph/cody \
27+
@githubnext/github-copilot-cli
28+
29+
# Optional: Install Python-based tools
30+
RUN apt-get update && apt-get install -y \
31+
python3 \
32+
python3-pip \
33+
&& rm -rf /var/lib/apt/lists/* \
34+
&& pip3 install --no-cache-dir \
35+
gpt-engineer \
36+
aider-chat \
37+
open-interpreter \
38+
&& pip3 cache purge
39+
40+
# Create non-root user
41+
RUN useradd -m -s /bin/bash coder
42+
43+
# Create configuration directories
44+
RUN mkdir -p /home/coder/.config/ai-tools \
45+
&& mkdir -p /home/coder/projects \
46+
&& mkdir -p /home/coder/.cache \
47+
&& chown -R coder:coder /home/coder
48+
49+
USER coder
50+
WORKDIR /home/coder
51+
52+
# Create default configuration template
53+
RUN echo '# AI Tools Configuration\n\
54+
# Copy this to your host machine and mount as volume\n\
55+
\n\
56+
# OpenAI Configuration\n\
57+
export OPENAI_API_KEY="your-openai-key"\n\
58+
export OPENAI_ORG_ID="your-org-id"\n\
59+
\n\
60+
# Anthropic Claude Configuration\n\
61+
export ANTHROPIC_API_KEY="your-anthropic-key"\n\
62+
\n\
63+
# Google Gemini Configuration\n\
64+
export GEMINI_API_KEY="your-gemini-key"\n\
65+
\n\
66+
# GitHub Copilot Configuration\n\
67+
export GITHUB_TOKEN="your-github-token"\n\
68+
\n\
69+
# Sourcegraph Cody Configuration\n\
70+
export SRC_ACCESS_TOKEN="your-sourcegraph-token"\n\
71+
export SRC_ENDPOINT="https://sourcegraph.com"\n\
72+
' > /home/coder/.config/ai-tools/config.env.template
73+
74+
# Create helper script
75+
RUN echo '#!/bin/bash\n\
76+
echo "🚀 AI Coding Agents Collection"\n\
77+
echo "================================"\n\
78+
echo ""\n\
79+
echo "✅ npm-installed CLI tools:"\n\
80+
echo " codex - OpenAI Codex"\n\
81+
echo " gemini - Google Gemini CLI"\n\
82+
echo " claude - Anthropic Claude Code"\n\
83+
echo " cn - Continue CLI"\n\
84+
echo " cody - Sourcegraph Cody"\n\
85+
echo " github-copilot - GitHub Copilot CLI"\n\
86+
echo ""\n\
87+
echo "🐍 pip-installed tools:"\n\
88+
echo " gpt-engineer - GPT Engineer"\n\
89+
echo " aider - Aider"\n\
90+
echo " interpreter - Open Interpreter"\n\
91+
echo ""\n\
92+
echo "📁 Mounted directories:"\n\
93+
echo " ~/projects - Your project files"\n\
94+
echo " ~/.config - Configuration files"\n\
95+
echo " ~/.cache - Cache directory"\n\
96+
echo ""\n\
97+
echo "📖 Quick start:"\n\
98+
echo " 1. Load config: source ~/.config/ai-tools/config.env"\n\
99+
echo " 2. Run tool: claude"\n\
100+
echo ""\n\
101+
if [ -f ~/.config/ai-tools/config.env ]; then\n\
102+
source ~/.config/ai-tools/config.env\n\
103+
echo "✅ Configuration loaded"\n\
104+
else\n\
105+
echo "⚠️ No config found. Copy config.env.template to config.env"\n\
106+
fi\n\
107+
' > /home/coder/list-agents.sh && chmod +x /home/coder/list-agents.sh
108+
109+
ENV PATH="/home/coder:${PATH}"
110+
111+
# Set volumes for persistent data
112+
VOLUME ["/home/coder/projects", "/home/coder/.config", "/home/coder/.cache"]
113+
114+
CMD ["/bin/bash", "-c", "/home/coder/list-agents.sh && /bin/bash"]
115+
```
116+
117+
**配套的 docker-compose.yml**:
118+
119+
```yaml
120+
version: '3.8'
121+
122+
services:
123+
ai-coding-agents:
124+
build: .
125+
container_name: ai-coding-tools
126+
stdin_open: true
127+
tty: true
128+
volumes:
129+
# 项目文件映射
130+
- ./projects:/home/coder/projects
131+
132+
# 配置文件映射
133+
- ./config:/home/coder/.config/ai-tools
134+
135+
# 缓存目录映射(可选)
136+
- ./cache:/home/coder/.cache
137+
138+
# Git 配置映射(可选)
139+
- ~/.gitconfig:/home/coder/.gitconfig:ro
140+
141+
# SSH 密钥映射(可选,用于 git)
142+
- ~/.ssh:/home/coder/.ssh:ro
143+
144+
environment:
145+
# 可以在这里直接设置环境变量,或使用 env_file
146+
- OPENAI_API_KEY=${OPENAI_API_KEY}
147+
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
148+
- GEMINI_API_KEY=${GEMINI_API_KEY}
149+
- GITHUB_TOKEN=${GITHUB_TOKEN}
150+
151+
# 或使用环境变量文件
152+
# env_file:
153+
# - ./config/.env
154+
155+
working_dir: /home/coder/projects
156+
157+
# 网络配置(如果需要访问本地服务)
158+
# network_mode: host
159+
```
160+
161+
**使用说明文档 (README.md)**:
162+
163+
````markdown
164+
# AI Coding Agents Docker Setup
165+
166+
## 📋 初始设置
167+
168+
### 1. 创建必要的目录结构
169+
```bash
170+
mkdir -p projects config cache
171+
````
172+
173+
### 2. 创建配置文件
174+
175+
复制模板并填写你的 API keys:
176+
177+
```bash
178+
# 从容器中复制模板
179+
docker run --rm ai-coding-tools cat /home/coder/.config/ai-tools/config.env.template > config/config.env
180+
181+
# 编辑配置文件
182+
nano config/config.env
183+
```
184+
185+
或直接创建 `config/config.env`:
186+
187+
```bash
188+
# OpenAI Configuration
189+
export OPENAI_API_KEY="sk-..."
190+
export OPENAI_ORG_ID="org-..."
191+
192+
# Anthropic Claude Configuration
193+
export ANTHROPIC_API_KEY="sk-ant-..."
194+
195+
# Google Gemini Configuration
196+
export GEMINI_API_KEY="..."
197+
198+
# GitHub Copilot Configuration
199+
export GITHUB_TOKEN="ghp_..."
200+
201+
# Sourcegraph Cody Configuration
202+
export SRC_ACCESS_TOKEN="..."
203+
export SRC_ENDPOINT="https://sourcegraph.com"
204+
```
205+
206+
## 🚀 启动容器
207+
208+
### 使用 docker-compose (推荐)
209+
210+
```bash
211+
docker-compose up -d
212+
docker-compose exec ai-coding-agents bash
213+
```
214+
215+
### 使用 docker run
216+
217+
```bash
218+
docker build -t ai-coding-tools .
219+
220+
docker run -it --rm \
221+
-v $(pwd)/projects:/home/coder/projects \
222+
-v $(pwd)/config:/home/coder/.config/ai-tools \
223+
-v $(pwd)/cache:/home/coder/.cache \
224+
-v ~/.gitconfig:/home/coder/.gitconfig:ro \
225+
--env-file config/config.env \
226+
ai-coding-tools
227+
```
228+
229+
## 📁 目录映射说明
230+
231+
| 主机目录 | 容器目录 | 用途 |
232+
| -------------- | ------------------------------ | ---------- |
233+
| `./projects` | `/home/coder/projects` | 你的项目代码 |
234+
| `./config` | `/home/coder/.config/ai-tools` | CLI 工具配置 |
235+
| `./cache` | `/home/coder/.cache` | 缓存数据 |
236+
| `~/.gitconfig` | `/home/coder/.gitconfig` | Git 配置(只读) |
237+
| `~/.ssh` | `/home/coder/.ssh` | SSH 密钥(只读) |
238+
239+
## 💡 使用示例
240+
241+
进入容器后:
242+
243+
```bash
244+
# 加载配置
245+
source ~/.config/ai-tools/config.env
246+
247+
# 使用 Claude Code
248+
cd projects/my-project
249+
claude
250+
251+
# 使用 Aider
252+
aider --model gpt-4
253+
254+
# 使用 GPT Engineer
255+
gpt-engineer projects/new-project
256+
257+
# 使用 Continue
258+
cn chat
259+
```
260+
261+
## 🔒 安全建议
262+
263+
1. **不要提交配置文件**:
264+
265+
```bash
266+
echo "config/config.env" >> .gitignore
267+
echo ".env" >> .gitignore
268+
```
269+
270+
2. **使用环境变量文件** (docker-compose):
271+
创建 `.env` 文件在项目根目录:
272+
273+
```
274+
OPENAI_API_KEY=sk-...
275+
ANTHROPIC_API_KEY=sk-ant-...
276+
```
277+
278+
3. **限制文件权限**:
279+
280+
```bash
281+
chmod 600 config/config.env
282+
```
283+
284+
````
285+
286+
**额外的 .gitignore**:
287+
288+
```gitignore
289+
# 配置文件(包含敏感信息)
290+
config/config.env
291+
config/.env
292+
.env
293+
294+
# 缓存目录
295+
cache/
296+
297+
# 项目文件(根据需要调整)
298+
projects/*
299+
!projects/.gitkeep
300+
````
301+
302+
这个改进版本提供了:
303+
304+
1.**配置文件管理**: 通过 volume 映射 `.config` 目录
305+
2.**项目目录映射**: 持久化你的代码
306+
3.**缓存目录**: 提升性能
307+
4.**Git 集成**: 映射 gitconfig 和 SSH 密钥
308+
5.**环境变量支持**: 多种方式配置 API keys
309+
6.**安全性**: 配置文件不进入镜像,使用 volume 挂载
310+
7.**易用性**: docker-compose 简化启动流程

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /