feat: initialize project structure with Docker Compose, startup script, and environment documentation

This commit is contained in:
hangyu.tao 2026-05-06 19:53:59 +08:00
parent ca6b010f59
commit 1ccc634c27
4 changed files with 114 additions and 0 deletions

23
DEPLOY.md Normal file
View File

@ -0,0 +1,23 @@
# D-Case 一键部署与启动脚本
## 1. 环境准备
确保您的机器已安装:
- Docker
- Docker Compose
## 2. 一键启动
在项目根目录下执行:
```bash
chmod +x startup.sh
./startup.sh
```
## 3. 访问地址
- **前端页面**: `http://<服务器IP>:80`
- **后端接口**: `http://<服务器IP>:8000`
- **数据库**: MySQL 容器内部运行
## 4. 核心配置文件
- `docker-compose.yml`: 定义容器拓扑。
- `startup.sh`: 自动化安装与启动。
- `nginx.conf`: 处理前端路由与反向代理。

10
backend/requirements.txt Normal file
View File

@ -0,0 +1,10 @@
fastapi
uvicorn
sqlalchemy
pymysql
cryptography
pydantic
requests
python-multipart
python-dotenv
uuid

40
docker-compose.yml Normal file
View File

@ -0,0 +1,40 @@
version: '3.8'
services:
# 后端服务
backend:
build:
context: .
dockerfile: backend.Dockerfile
ports:
- "8000:8000"
environment:
- DATABASE_URL=mysql+pymysql://user:pass@db:3306/dcase
- FEISHU_APP_ID=${FEISHU_APP_ID}
- FEISHU_APP_SECRET=${FEISHU_APP_SECRET}
depends_on:
- db
# 前端服务
frontend:
build:
context: .
dockerfile: frontend.Dockerfile
ports:
- "80:80"
depends_on:
- backend
# 数据库
db:
image: mysql:8.0
environment:
- MYSQL_DATABASE=dcase
- MYSQL_USER=user
- MYSQL_PASSWORD=pass
- MYSQL_ROOT_PASSWORD=rootpass
volumes:
- mysql_data:/var/lib/mysql
volumes:
mysql_data:

41
startup.sh Executable file
View File

@ -0,0 +1,41 @@
#!/bin/bash
# D-Case 一键启动脚本 (Local Version)
echo "🚀 正在启动 D-Case 平台..."
# 1. 检查并安装前端依赖
if [ ! -d "node_modules" ]; then
echo "📦 正在安装前端依赖..."
npm install
fi
# 2. 检查并安装后端依赖
if [ ! -d "backend/venv" ]; then
echo "🐍 正在创建 Python 虚拟环境..."
python3 -m venv backend/venv
source backend/venv/bin/activate
pip install -r backend/requirements.txt
else
source backend/venv/bin/activate
fi
# 3. 启动后端 (后台运行)
echo "🔥 正在启动后端服务 (Port: 8000)..."
python3 backend/main.py &
BACKEND_PID=$!
# 4. 启动前端
echo "🌐 正在启动前端服务 (Vite)..."
npm run dev &
FRONTEND_PID=$!
# 捕获退出信号
trap "kill $BACKEND_PID $FRONTEND_PID; exit" SIGINT SIGTERM
echo "✅ 启动成功!"
echo "👉 前端地址: http://localhost:5173"
echo "👉 后端地址: http://localhost:8000"
echo "按下 Ctrl+C 停止所有服务。"
wait