feat: 添加纯 Docker 一键部署版本

This commit is contained in:
root
2026-04-09 08:35:27 +08:00
parent f17e3928d7
commit d20870255b
4 changed files with 167 additions and 0 deletions

2
docker/.env.example Normal file
View File

@ -0,0 +1,2 @@
# DeepSeek API Key (必需)
DEEPSEEK_API_KEY=your-api-key-here

49
docker/README.md Normal file
View File

@ -0,0 +1,49 @@
# OpenClaw Docker 部署
一键启动 OpenClaw 纯图数据库对话 Demo。
## 快速开始
```bash
cd docker
chmod +x start.sh
./start.sh
# 或者直接使用 docker compose
docker compose up -d
```
## 前置要求
- Docker
- Docker Compose v2 (或 docker-compose)
## 启动后
- Neo4j Browser: http://localhost:7474
- 登录用户: neo4j / openclaw123
- 应用运行在终端交互模式
## 停止
```bash
cd docker
docker compose down
```
## 配置
编辑 `.env` 文件修改 DeepSeek API Key
```
DEEPSEEK_API_KEY=sk-xxx
```
## 文件说明
```
docker/
├── docker-compose.yml # 容器编排 (Neo4j + 应用)
├── start.sh # 一键启动脚本
├── .env.example # 环境变量模板
└── README.md # 本文件
```

50
docker/docker-compose.yml Normal file
View File

@ -0,0 +1,50 @@
version: '3.8'
services:
neo4j:
image: neo4j:5
container_name: openclaw-neo4j
ports:
- "7474:7474"
- "7687:7687"
environment:
- NEO4J_AUTH=neo4j/openclaw123
- NEO4J_PLUGINS=["apoc"]
- NEO4J_server_memory_heap_initial__size=256m
- NEO4J_server_memory_heap_max__size=512m
volumes:
- neo4j_data:/data
- neo4j_logs:/logs
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "return cypher-shell -u neo4j -p openclaw123 'RETURN 1' 2>/dev/null || exit 1"]
interval: 30s
timeout: 10s
retries: 5
openclaw:
image: python:3.11-slim
container_name: openclaw-app
ports:
- "8000:8000"
environment:
- NEO4J_URI=bolt://neo4j:7687
- NEO4J_USER=neo4j
- NEO4J_PASSWORD=openclaw123
- DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-your-api-key-here}
volumes:
- ..:/app
- ../openclaw_neo4j_demo.py:/app/openclaw_neo4j_demo.py
working_dir: /app
command: >
sh -c "pip install --quiet neo4j openai && python openclaw_neo4j_demo.py"
stdin_open: true
tty: true
depends_on:
neo4j:
condition: service_healthy
restart: unless-stopped
volumes:
neo4j_data:
neo4j_logs:

66
docker/start.sh Normal file
View File

@ -0,0 +1,66 @@
#!/bin/bash
# OpenClaw Docker 一键启动脚本
set -e
echo "========================================"
echo "OpenClaw Docker 一键启动"
echo "========================================"
# 检查 Docker 和 Docker Compose
if ! command -v docker &> /dev/null; then
echo "Error: Docker 未安装"
exit 1
fi
# 检查 docker compose 插件或 docker-compose
DOCKER_COMPOSE="docker compose"
if ! docker compose version &> /dev/null; then
DOCKER_COMPOSE="docker-compose"
if ! command -v docker-compose &> /dev/null; then
echo "Error: Docker Compose 未安装"
exit 1
fi
fi
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
cd "$PROJECT_DIR/docker"
# 检查 .env 文件
if [ ! -f .env ]; then
echo ""
read -p "请输入 DeepSeek API Key: " user_api_key
[ -z "$user_api_key" ] && user_api_key="your-api-key-here"
cat > .env << EOF
DEEPSEEK_API_KEY=${user_api_key}
EOF
echo " 已保存配置到 .env"
fi
# 启动服务
echo ""
echo "启动 Neo4j 和 OpenClaw 应用..."
$DOCKER_COMPOSE up -d
# 等待 Neo4j 就绪
echo "等待 Neo4j 启动..."
sleep 10
# 检查状态
echo ""
echo "========================================"
echo "启动完成!"
echo "========================================"
echo ""
echo "服务状态:"
$DOCKER_COMPOSE ps
echo ""
echo "访问地址:"
echo " Neo4j Browser: http://localhost:7474"
echo " Neo4j 用户: neo4j / openclaw123"
echo ""
echo "停止服务: docker compose down"
echo "查看日志: docker compose logs -f"