问题: 1. Dockerfile.prod目录结构错误 - standalone路径不正确 - static文件路径错误 2. docker-compose.server.yml网络配置问题 - external网络可能不存在 3. 健康检查命令不可用 - alpine镜像缺少wget 修复: 1. Dockerfile.prod - 正确复制standalone目录内容 - 将static文件复制到.next/static/ - 安装curl用于健康检查 2. docker-compose.server.yml - 移除external网络依赖 - 使用curl进行健康检查 3. deploy-production.sh - 使用curl替代wget - 备份包含Dockerfile.prod和docker-compose.server.yml
This commit is contained in:
@@ -16,7 +16,7 @@ echo ""
|
||||
echo "=== Step 1: 备份当前版本 ==="
|
||||
mkdir -p $BACKUP_DIR
|
||||
if [ -d "dist" ]; then
|
||||
tar -czf $BACKUP_DIR/dist_$TIMESTAMP.tar.gz dist public package.json package-lock.json 2>/dev/null || echo "备份完成(部分文件可能不存在)"
|
||||
tar -czf $BACKUP_DIR/dist_$TIMESTAMP.tar.gz dist public package.json package-lock.json Dockerfile.prod docker-compose.server.yml 2>/dev/null || echo "备份完成(部分文件可能不存在)"
|
||||
echo "✅ 备份已保存到: $BACKUP_DIR/dist_$TIMESTAMP.tar.gz"
|
||||
else
|
||||
echo "⚠️ 没有找到dist目录,跳过备份"
|
||||
@@ -48,7 +48,7 @@ sleep 10
|
||||
echo ""
|
||||
echo "=== Step 6: 健康检查 ==="
|
||||
for i in {1..30}; do
|
||||
if wget -q --spider http://localhost:3000/api/health 2>/dev/null; then
|
||||
if curl -f http://localhost:3000/api/health >/dev/null 2>&1; then
|
||||
echo "✅ 健康检查通过!"
|
||||
|
||||
echo ""
|
||||
@@ -75,7 +75,7 @@ if [ -f "$BACKUP_DIR/dist_$TIMESTAMP.tar.gz" ]; then
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
sleep 10
|
||||
if wget -q --spider http://localhost:3000/api/health 2>/dev/null; then
|
||||
if curl -f http://localhost:3000/api/health >/dev/null 2>&1; then
|
||||
echo "✅ 回滚成功"
|
||||
else
|
||||
echo "❌ 回滚也失败了!"
|
||||
|
||||
Reference in New Issue
Block a user