- 添加 Traefik 网关配置,启用 ping 健康检查 - 配置 nginx-webws 服务处理 /ABM 路径 - 实现 HTTP 到 HTTPS 自动重定向 - 使用 rewrite 规则正确处理 /ABM/ 路径前缀 - 添加静态资源缓存优化(CSS/JS/JSON/图片) - 配置 PostgreSQL 数据库服务 网站访问地址: https://amiap.hzau.edu.cn/ABM/ 所有静态资源(HTML/CSS/JS/JSON/图片)均可正常访问
89 lines
2.3 KiB
Bash
Executable File
89 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# 配置变量
|
|
VOLUME_NAME="webws-data"
|
|
SOURCE_DIR="/vol1/1000/home/ws/PBMDB"
|
|
COMPOSE_FILE="../ws/docker-compose.yml"
|
|
|
|
echo "=========================================="
|
|
echo "部署 Traefik + Nginx 静态网站"
|
|
echo "=========================================="
|
|
|
|
# 1. 检查源目录是否存在
|
|
if [ ! -d "$SOURCE_DIR" ]; then
|
|
echo "❌ 错误: 源目录不存在: $SOURCE_DIR"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✓ 源目录存在: $SOURCE_DIR"
|
|
|
|
# 2. 创建网络(如果不存在)
|
|
if ! docker network inspect frontend >/dev/null 2>&1; then
|
|
echo "📡 创建 Docker 网络: frontend"
|
|
docker network create frontend
|
|
else
|
|
echo "✓ Docker 网络已存在: frontend"
|
|
fi
|
|
|
|
# 3. 检查并创建外部卷
|
|
if ! docker volume inspect "$VOLUME_NAME" >/dev/null 2>&1; then
|
|
echo "📦 创建 Docker Volume: $VOLUME_NAME"
|
|
docker volume create "$VOLUME_NAME"
|
|
else
|
|
echo "✓ Docker Volume 已存在: $VOLUME_NAME"
|
|
fi
|
|
|
|
# 4. 复制文件到 Volume
|
|
echo "📁 复制网站文件到 Volume..."
|
|
docker run --rm \
|
|
-v "$SOURCE_DIR:/source:ro" \
|
|
-v "$VOLUME_NAME:/target" \
|
|
alpine sh -c "
|
|
echo '清理旧文件...'
|
|
rm -rf /target/*
|
|
echo '复制新文件...'
|
|
cp -r /source/. /target/
|
|
echo '设置权限...'
|
|
chmod -R 755 /target
|
|
find /target -type f -exec chmod 644 {} \;
|
|
echo '文件列表:'
|
|
ls -lah /target/
|
|
"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo "✓ 文件复制成功"
|
|
else
|
|
echo "❌ 文件复制失败"
|
|
exit 1
|
|
fi
|
|
|
|
# 5. 启动服务
|
|
echo "🚀 启动 Docker Compose 服务..."
|
|
docker compose -f "$COMPOSE_FILE" up -d
|
|
|
|
# 6. 等待服务启动
|
|
echo "⏳ 等待服务启动..."
|
|
sleep 3
|
|
|
|
# 7. 检查服务状态
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "服务状态:"
|
|
echo "=========================================="
|
|
docker compose -f "$COMPOSE_FILE" ps
|
|
|
|
# 8. 验证文件
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "验证 Volume 中的文件:"
|
|
echo "=========================================="
|
|
docker run --rm -v "$VOLUME_NAME:/data" alpine ls -lah /data/
|
|
|
|
# 9. 显示日志
|
|
echo ""
|
|
echo "=========================================="
|
|
echo "查看 Nginx 日志 (Ctrl+C 退出):"
|
|
echo "=========================================="
|
|
docker compose -f "$COMPOSE_FILE" logs -f nginx-webws
|