需用Docker部署CodeGeeX实现GPU隔离与可复现环境:先启用NVIDIA Container Toolkit,运行docker run --gpus all启动Ollama容器;再pull codegeex4模型并验证;VS Code插件需配置http://127.0.0.1:11434及model name;推荐用docker-compose统一管理;自定义推理镜像应匹配CUDA版本,或用codexdockerinit自动生成。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你想在本地用 CodeGeeX 做代码补全、生成或调试,又希望环境干净可复现、GPU 资源不被宿主 Python 干扰,就得把 CodeGeeX 相关服务跑在 Docker 里——不是只装个 Ollama,而是让模型加载、API 暴露、前端调用全部闭环在容器中,且能一键启停、跨机器迁移。
拉取并启动带 GPU 支持的 Ollama 容器
这一步是整个链路的底座,必须启用 NVIDIA Container Toolkit,否则容器内 torch.cuda.is_available() 返回 False。
执行 docker run --rm -d --gpus all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama 启动服务。
如果宿主机 11434 端口已被占用,【必须提前改掉端口映射,比如写成 -p 11435:11434】,否则容器会静默退出,docker ps 看不到它,但 docker logs ollama 会报 bind: address already in use。
浏览器访问 http://localhost:11434,看到 Ollama Web UI 即表示服务就绪。
下载并验证 CodeGeeX4 模型
Ollama 启动后,模型还没加载。这一步不能跳过,否则后续 API 调用会返回 model not found 错误。
在宿主机终端运行 ollama pull codegeex4,等待下载完成(约 3.2GB,国内建议配代理或换清华源)。
执行 ollama list,确认输出中包含 codegeex4 和对应 tag(如 latest),状态为 created。
运行 ollama run codegeex4,输入一句 “hello” 测试响应——若卡住超过 30 秒,说明显存不足或 CUDA 版本不匹配,需检查 nvidia-smi 输出与镜像 CUDA 版本是否一致。
配置 VS Code 插件直连本地 Ollama
VS Code 是最常用接入点,插件必须指向容器暴露的地址,而不是 localhost:11434 的默认值。
打开 VS Code 设置 → Extensions → CodeGeeX → Settings,在 “Ollama Endpoint” 输入框填入 http://127.0.0.1:11434(注意不是 http://localhost:11434,某些 WSL2 环境下 localhost 解析异常)。
在 “Model Name” 中填入 codegeex4,保存后右下角状态栏应显示 “Connected to Ollama”。
新建一个 .py 文件,输入 def hello():,按 Tab 触发补全——若弹出完整函数体,说明链路打通;若提示 “No response”,检查容器日志:docker logs ollama | tail -20,重点看是否有 panic: no model named codegeex4。
用 docker-compose.yml 统一管理服务栈
当你要加 Gradio 前端、或挂载自定义配置、或绑定特定模型路径时,单靠 docker run 命令太难维护,必须用 Compose 声明式编排。
第一步:创建 docker-compose.yml,内容如下:
version: "3.8"
services:
ollama:
image: ollama/ollama
restart: unless-stopped
ports:
- "11434:11434"
volumes:
- ./ollama-data:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
第二步:在项目根目录执行 docker-compose up -d,后台启动服务。
第三步:确认容器运行状态:docker-compose ps 显示 ollama 状态为 Up,且 PORTS 列有 11434->11434/tcp。
第四步:进入容器内部验证模型存在:docker-compose exec ollama ollama list,输出必须含 codegeex4。
构建自定义 CodeGeeX 推理镜像(PyTorch + 模型权重)
如果你不满足于 Ollama 默认封装,需要直接调用 HuggingFace Transformers 加载 CodeGeeX 权重做 fine-tuning 或批量推理,就得自己构建镜像。
方法一:基于 PyTorch-CUDA 官方镜像
创建 Dockerfile,首行写 FROM pytorch/pytorch:2.3.0-cuda12.1-cudnn8-runtime,确保与宿主机 nvidia-smi 显示的 CUDA 版本一致。
添加依赖安装指令:RUN pip install transformers accelerate sentencepiece,不要加 --upgrade,避免破坏 PyTorch ABI 兼容性。
复制模型权重:COPY ./models/codegeex-13b /app/models/,路径必须与你代码中 AutoModel.from_pretrained("/app/models/codegeex-13b") 一致。
暴露端口并设置启动命令:EXPOSE 8000,CMD ["python", "api_server.py"]。
构建命令:docker build -t codegeex-inference .,构建成功后运行:docker run --gpus all -p 8000:8000 codegeex-inference。
方法二:用 CodeGeeX CLI 自动生成(推荐新手)
进入项目根目录,确保存在 requirements.txt 和 model_config.json,执行:codexdockerinit --framework=transformers --quant=awq。
该命令会生成 Dockerfile.auto 和配套 docker-compose.yml,其中已预置 GPU 设备检测逻辑和量化加载参数。
直接运行 docker build -f Dockerfile.auto -t codegeex-cli . 即可,无需手动校验 CUDA 版本对齐问题。


















