feat: 添加纯 Docker 一键部署版本
This commit is contained in:
2
docker/.env.example
Normal file
2
docker/.env.example
Normal file
@ -0,0 +1,2 @@
|
||||
# DeepSeek API Key (必需)
|
||||
DEEPSEEK_API_KEY=your-api-key-here
|
||||
49
docker/README.md
Normal file
49
docker/README.md
Normal 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
50
docker/docker-compose.yml
Normal 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
66
docker/start.sh
Normal 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"
|
||||
Reference in New Issue
Block a user