79 lines
1.9 KiB
Bash
Executable File
79 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# 生产环境部署脚本
|
|
# 用于构建和启动OmniVerse官网
|
|
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo " OmniVerse 官网生产环境部署"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# 检查必要文件
|
|
if [ ! -f ".env.production" ]; then
|
|
echo "错误:找不到 .env.production 文件"
|
|
echo "请复制 .env.production.example 并配置环境变量"
|
|
exit 1
|
|
fi
|
|
|
|
# 停止旧容器
|
|
echo "停止旧容器..."
|
|
docker-compose -f docker-compose.prod.yml down
|
|
|
|
# 清理旧镜像(可选)
|
|
read -p "是否清理旧的Docker镜像?(y/N) " -n 1 -r
|
|
echo
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "清理旧镜像..."
|
|
docker system prune -f
|
|
fi
|
|
|
|
# 构建镜像
|
|
echo ""
|
|
echo "构建Docker镜像..."
|
|
docker-compose -f docker-compose.prod.yml build --no-cache
|
|
|
|
# 启动服务
|
|
echo ""
|
|
echo "启动服务..."
|
|
docker-compose -f docker-compose.prod.yml up -d
|
|
|
|
# 显示服务状态
|
|
echo ""
|
|
echo "等待服务启动..."
|
|
sleep 10
|
|
|
|
echo ""
|
|
echo "服务状态:"
|
|
docker-compose -f docker-compose.prod.yml ps
|
|
|
|
# 检查服务健康状态
|
|
echo ""
|
|
echo "检查服务健康状态..."
|
|
sleep 5
|
|
|
|
echo ""
|
|
echo "Web服务健康检查:"
|
|
docker inspect --format='{{json .State.Health}}' omniverse-web | python3 -m json.tool || echo "健康检查未就绪"
|
|
|
|
echo ""
|
|
echo "News爬虫服务健康检查:"
|
|
docker inspect --format='{{json .State.Health}}' omniverse-news-crawler | python3 -m json.tool || echo "健康检查未就绪"
|
|
|
|
echo ""
|
|
echo "=========================================="
|
|
echo " 部署完成!"
|
|
echo "=========================================="
|
|
echo ""
|
|
echo "访问地址:"
|
|
echo " HTTP: http://www.omniverseai.net"
|
|
echo " HTTPS: https://www.omniverseai.net (需要先申请SSL证书)"
|
|
echo ""
|
|
echo "查看日志:"
|
|
echo " docker-compose -f docker-compose.prod.yml logs -f"
|
|
echo ""
|
|
echo "如需申请SSL证书,请运行:"
|
|
echo " ./init-ssl.sh"
|
|
echo ""
|