添加Docker部署方案
- 多阶段Dockerfile:第一阶段构建前端(npm),第二阶段Python运行时(uv+opencv) - docker-compose.yml:单服务,data/logs目录挂载持久化 - deploy.sh一键部署脚本:自动构建+启动+健康检查 - .dockerignore排除不必要文件减小构建上下文 - main.py添加前端静态文件服务(生产环境单端口部署) - README更新部署文档和代理配置说明
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
# ===== 斗鱼批量登录 Docker 部署脚本 =====
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
echo ""
|
||||
echo "=============================="
|
||||
echo " 斗鱼批量登录 - Docker 部署"
|
||||
echo "=============================="
|
||||
|
||||
# 检查 Docker
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "❌ 未安装 Docker,请先安装:"
|
||||
echo " curl -fsSL https://get.docker.com | sh"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 检查 docker compose
|
||||
if docker compose version &> /dev/null; then
|
||||
COMPOSE="docker compose"
|
||||
elif command -v docker-compose &> /dev/null; then
|
||||
COMPOSE="docker-compose"
|
||||
else
|
||||
echo "❌ 未安装 docker compose,请先安装 Docker Compose"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo " 使用: $COMPOSE"
|
||||
echo ""
|
||||
|
||||
# 创建数据和日志目录
|
||||
mkdir -p data logs
|
||||
|
||||
# 构建并启动
|
||||
echo "正在构建镜像(首次构建约3-5分钟)..."
|
||||
$COMPOSE build
|
||||
|
||||
echo ""
|
||||
echo "正在启动服务..."
|
||||
$COMPOSE up -d
|
||||
|
||||
echo ""
|
||||
echo "等待服务启动..."
|
||||
sleep 3
|
||||
|
||||
# 健康检查
|
||||
for i in $(seq 1 10); do
|
||||
if curl -s http://localhost:8000/api/health | grep -q "ok" 2>/dev/null; then
|
||||
echo ""
|
||||
echo "=============================="
|
||||
echo " ✅ 部署成功!"
|
||||
echo "=============================="
|
||||
echo " 访问地址: http://localhost:8000"
|
||||
echo " 默认账号: admin / admin123"
|
||||
echo ""
|
||||
echo " 查看日志: $COMPOSE logs -f"
|
||||
echo " 停止服务: $COMPOSE down"
|
||||
echo " 重启服务: $COMPOSE restart"
|
||||
echo "=============================="
|
||||
exit 0
|
||||
fi
|
||||
echo " 等待中... ($i/10)"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "❌ 服务启动超时,查看日志:"
|
||||
$COMPOSE logs --tail 30
|
||||
exit 1
|
||||
Reference in New Issue
Block a user