在手动部署OpenClaw过程中,我踩过无数坑。以下是真实生产环境中遇到的高频问题及解决方案,附可执行代码。
1. 环境变量配置错误(占故障90%)
现象 :容器启动即退出,日志显示Error: Configuration failed。
# 错误的.env配置
API_KEY=sk-xxx
# 正确的配置模板
cat > .env << EOF
OPENCLAW_API_KEY=sk-xxx
OPENCLAW_MODEL_PROVIDER=qwen
OPENCLAW_GATEWAY_PORT=8080
OPENCLAW_ALLOWED_ORIGINS=http://localhost:3000
EOF
修复命令:
source .env && docker-compose up -d
2. 端口冲突导致服务无法启动
现象 :Error: listen EADDRINUSE: address already in use 0.0.0.0:8080。
# 检查端口占用
lsof -i :8080 || netstat -tuln | grep 8080
# 动态分配可用端口的脚本
PORT=8080
while lsof -i :$PORT; do
PORT=$((PORT+1))
done
echo "Using port: $PORT"
sed -i "s/8080/$PORT/g" docker-compose.yml
3. API Key权限不足
现象 :调用大模型时返回403 Forbidden。
# 验证API Key有效性
import requests
API_KEY = "sk-xxx"
response = requests.post(
"https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation",
headers={"Authorization": f"Bearer {API_KEY}"},
json={"model": "qwen-max", "input": {"messages": [{"role": "user", "content": "test"}]}}
)
print(f"API验证结果: {response.status_code}, {response.text[:100]}")
4. 跨域问题(Origin Not Allowed)
现象 :浏览器控制台报错origin not allowed。
# 修复配置
cat > config/gateway.yaml << EOF
gateway:
controlUi:
allowedOrigins:
- "http://localhost:3000"
- "https://your-domain.com"
- "*"
EOF
重启服务:
docker-compose restart gateway
5. 依赖安装失败
现象 :npm install failed; showing last log lines。
# 清理缓存后重试
rm -rf node_modules package-lock.json
npm cache clean --force
npm install --registry=https://registry.npmmirror.com
# 或使用国内镜像源
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/
nvm install 18
nvm use 18
6. Docker卷权限问题
现象 :容器启动后立即退出,日志显示Permission denied。
# 修复卷权限
sudo chown -R $USER:$USER ./data
sudo chmod -R 755 ./data
# 在docker-compose.yml中指定用户
services:
openclaw:
user: "${UID:-1000}:${GID:-1000}"
7. 模型提供商配置错误
现象 :Unknown model provider: qwen。
# 正确的模型配置
cat > config/providers.yaml << EOF
providers:
- name: ali
type: dashscope
api_key: sk-xxx
models:
- qwen-max
- qwen-plus
- name: free
type: coding_plan
api_key: cp-xxx
EOF
8. 诊断命令集
当遇到未知错误时,使用以下命令快速定位:
# 检查服务状态
openclaw status
# 深度诊断
openclaw doctor --verbose
# 实时日志
docker-compose logs -f --tail=100 openclaw
# 内存泄漏检测
docker stats openclaw_container_id
经验总结 :90%的部署问题源于环境变量配置错误。建议使用openclaw configure交互式命令初始化配置。生产环境务必启用HTTPS和认证机制,避免API Key泄露。遇到问题时,先检查日志中的错误码,再对照官方文档的错误码表精准定位。