- 多阶段Dockerfile:第一阶段构建前端(npm),第二阶段Python运行时(uv+opencv) - docker-compose.yml:单服务,data/logs目录挂载持久化 - deploy.sh一键部署脚本:自动构建+启动+健康检查 - .dockerignore排除不必要文件减小构建上下文 - main.py添加前端静态文件服务(生产环境单端口部署) - README更新部署文档和代理配置说明
73 lines
1.7 KiB
Bash
Executable File
73 lines
1.7 KiB
Bash
Executable File
#!/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
|