2.3 KiB
2.3 KiB
Docker 一键体验 详细设计
任务ID:JJC-20260303-001 · 第一批 · 功能3
1. 目标
docker compose up
# 浏览器打开 http://localhost:3926 即可体验完整看板
2. Dockerfile
FROM node:20-alpine AS frontend
WORKDIR /app/frontend
COPY edict/frontend/package*.json ./
RUN npm ci
COPY edict/frontend/ ./
RUN npm run build
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
COPY edict/ ./edict/
COPY docker/demo_data/ ./data/
COPY --from=frontend /app/frontend/dist ./edict/frontend/dist
EXPOSE 3926
ENV DEMO_MODE=true
CMD ["python", "edict/server.py"]
3. docker-compose.yml
version: "3.8"
services:
dashboard:
build: .
ports:
- "3926:3926"
environment:
- DEMO_MODE=true
- HOST=0.0.0.0
- PORT=3926
volumes:
- dashboard-data:/app/data
restart: unless-stopped
volumes:
dashboard-data:
4. Demo 数据
已有 docker/demo_data/ 目录中的数据文件:
tasks_source.json— 示例旨意officials_stats.json— 官员统计agent_config.json— Agent 配置live_status.json— 实时状态morning_brief.json— 早朝简报model_change_log.json— 模型切换记录
DEMO_MODE=true 时 server.py 从 /app/data/ 加载这些文件,API 可读可写但不持久化到宿主机(除非挂载 volume)。
5. CI/CD(GitHub Actions)
# .github/workflows/docker.yml
name: Build & Push Docker
on:
push:
branches: [main]
tags: ['v*']
jobs:
docker:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- uses: docker/build-push-action@v5
with:
push: true
tags: |
openclaw/sansheng-dashboard:latest
openclaw/sansheng-dashboard:${{ github.sha }}
6. README 补充
在项目根 README 添加 Quick Start 区块:
## 🐳 Quick Start (Docker)
```bash
git clone https://github.com/xxx/openclaw-sansheng-liubu.git
cd openclaw-sansheng-liubu
docker compose up
# 打开 http://localhost:3926
```