42 lines
975 B
Bash
42 lines
975 B
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
# Awesome Index 启动脚本
|
|
DEPLOY_PATH="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "$DEPLOY_PATH"
|
|
|
|
# 检查 .env 文件
|
|
if [ ! -f .env ]; then
|
|
echo "错误: 缺少 .env 文件,请从 .env.example 复制并修改"
|
|
exit 1
|
|
fi
|
|
|
|
# 停止旧容器
|
|
echo "停止旧容器..."
|
|
docker compose down --remove-orphans 2>/dev/null || true
|
|
|
|
# 启动新容器
|
|
echo "启动 Awesome Index..."
|
|
docker compose up -d
|
|
|
|
# 健康检查
|
|
echo "等待服务就绪..."
|
|
sleep 5
|
|
|
|
MAX_RETRIES=10
|
|
RETRY_COUNT=0
|
|
while [ $RETRY_COUNT -lt $MAX_RETRIES ]; do
|
|
if curl -sf http://localhost:3000/healthz > /dev/null 2>&1; then
|
|
echo "✓ 服务已启动: http://localhost:3000"
|
|
echo ""
|
|
echo "管理后台: http://localhost:3000/admin"
|
|
echo "默认账号: admin / (见 .env 中的 ADMIN_INIT_PASSWORD)"
|
|
exit 0
|
|
fi
|
|
RETRY_COUNT=$((RETRY_COUNT + 1))
|
|
sleep 2
|
|
done
|
|
|
|
echo "✗ 服务启动失败,请检查日志: docker compose logs"
|
|
exit 1
|