feat: initialize project structure with Docker Compose, startup script, and environment documentation
This commit is contained in:
parent
ca6b010f59
commit
1ccc634c27
23
DEPLOY.md
Normal file
23
DEPLOY.md
Normal 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
10
backend/requirements.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
fastapi
|
||||||
|
uvicorn
|
||||||
|
sqlalchemy
|
||||||
|
pymysql
|
||||||
|
cryptography
|
||||||
|
pydantic
|
||||||
|
requests
|
||||||
|
python-multipart
|
||||||
|
python-dotenv
|
||||||
|
uuid
|
||||||
40
docker-compose.yml
Normal file
40
docker-compose.yml
Normal 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
41
startup.sh
Executable 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
|
||||||
Loading…
x
Reference in New Issue
Block a user