This commit is contained in:
parent
92e298ee4e
commit
0f58c4ef7c
@ -369,6 +369,8 @@ jobs:
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
timeout: 300s
|
||||
command_timeout: 600s
|
||||
script: |
|
||||
echo "=== SSH变量调试信息 ==="
|
||||
echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}"
|
||||
@ -377,16 +379,69 @@ jobs:
|
||||
echo "BRANCH: ${{ env.BRANCH }}"
|
||||
|
||||
echo "=== 部署管理面板 ==="
|
||||
docker pull ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }}
|
||||
docker stop ppanel-admin-web || true
|
||||
docker rm ppanel-admin-web || true
|
||||
|
||||
# 拉取镜像(带重试)
|
||||
echo "拉取Docker镜像..."
|
||||
for i in {1..3}; do
|
||||
if docker pull ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }}; then
|
||||
echo "镜像拉取成功"
|
||||
break
|
||||
else
|
||||
echo "镜像拉取失败,重试 $i/3"
|
||||
sleep 5
|
||||
if [ $i -eq 3 ]; then
|
||||
echo "❌ 镜像拉取失败,部署终止"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# 安全停止和移除容器
|
||||
echo "检查现有容器状态..."
|
||||
if docker ps -q -f name=ppanel-admin-web | grep -q .; then
|
||||
echo "停止运行中的容器..."
|
||||
docker stop ppanel-admin-web --time=10 || true
|
||||
sleep 3
|
||||
fi
|
||||
|
||||
if docker ps -aq -f name=ppanel-admin-web | grep -q .; then
|
||||
echo "移除现有容器..."
|
||||
# 等待容器完全停止
|
||||
for i in {1..10}; do
|
||||
if docker rm ppanel-admin-web 2>/dev/null; then
|
||||
echo "容器移除成功"
|
||||
break
|
||||
else
|
||||
echo "等待容器停止... $i/10"
|
||||
sleep 2
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo "启动新容器..."
|
||||
docker run -d \
|
||||
--name ppanel-admin-web \
|
||||
--restart unless-stopped \
|
||||
-p 3001:3000 \
|
||||
-e NEXT_PUBLIC_API_URL=${{ env.NEXT_PUBLIC_API_URL }} \
|
||||
${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }}
|
||||
echo "✅ 管理面板部署成功"
|
||||
|
||||
# 验证容器启动
|
||||
echo "验证容器启动状态..."
|
||||
for i in {1..10}; do
|
||||
if docker ps -q -f name=ppanel-admin-web | grep -q .; then
|
||||
echo "✅ 管理面板部署成功"
|
||||
docker ps -f name=ppanel-admin-web --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
||||
exit 0
|
||||
else
|
||||
echo "等待容器启动... $i/10"
|
||||
sleep 3
|
||||
fi
|
||||
done
|
||||
|
||||
echo "❌ 管理面板部署失败 - 容器未能正常启动"
|
||||
docker logs ppanel-admin-web || true
|
||||
exit 1
|
||||
|
||||
- name: 部署用户面板到服务器
|
||||
if: env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both'
|
||||
@ -396,6 +451,8 @@ jobs:
|
||||
username: ${{ secrets.USERNAME }}
|
||||
key: ${{ secrets.KEY }}
|
||||
port: ${{ secrets.PORT }}
|
||||
timeout: 300s
|
||||
command_timeout: 600s
|
||||
script: |
|
||||
echo "=== SSH变量调试信息 ==="
|
||||
echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}"
|
||||
@ -404,16 +461,69 @@ jobs:
|
||||
echo "BRANCH: ${{ env.BRANCH }}"
|
||||
|
||||
echo "=== 部署用户面板 ==="
|
||||
docker pull ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }}
|
||||
docker stop ppanel-user-web || true
|
||||
docker rm ppanel-user-web || true
|
||||
|
||||
# 拉取镜像(带重试)
|
||||
echo "拉取Docker镜像..."
|
||||
for i in {1..3}; do
|
||||
if docker pull ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }}; then
|
||||
echo "镜像拉取成功"
|
||||
break
|
||||
else
|
||||
echo "镜像拉取失败,重试 $i/3"
|
||||
sleep 5
|
||||
if [ $i -eq 3 ]; then
|
||||
echo "❌ 镜像拉取失败,部署终止"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# 安全停止和移除容器
|
||||
echo "检查现有容器状态..."
|
||||
if docker ps -q -f name=ppanel-user-web | grep -q .; then
|
||||
echo "停止运行中的容器..."
|
||||
docker stop ppanel-user-web --time=10 || true
|
||||
sleep 3
|
||||
fi
|
||||
|
||||
if docker ps -aq -f name=ppanel-user-web | grep -q .; then
|
||||
echo "移除现有容器..."
|
||||
# 等待容器完全停止
|
||||
for i in {1..10}; do
|
||||
if docker rm ppanel-user-web 2>/dev/null; then
|
||||
echo "容器移除成功"
|
||||
break
|
||||
else
|
||||
echo "等待容器停止... $i/10"
|
||||
sleep 2
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
echo "启动新容器..."
|
||||
docker run -d \
|
||||
--name ppanel-user-web \
|
||||
--restart unless-stopped \
|
||||
-p 3002:3000 \
|
||||
-e NEXT_PUBLIC_API_URL=${{ env.NEXT_PUBLIC_API_URL }} \
|
||||
${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }}
|
||||
echo "✅ 用户面板部署成功"
|
||||
|
||||
# 验证容器启动
|
||||
echo "验证容器启动状态..."
|
||||
for i in {1..10}; do
|
||||
if docker ps -q -f name=ppanel-user-web | grep -q .; then
|
||||
echo "✅ 用户面板部署成功"
|
||||
docker ps -f name=ppanel-user-web --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
|
||||
exit 0
|
||||
else
|
||||
echo "等待容器启动... $i/10"
|
||||
sleep 3
|
||||
fi
|
||||
done
|
||||
|
||||
echo "❌ 用户面板部署失败 - 容器未能正常启动"
|
||||
docker logs ppanel-user-web || true
|
||||
exit 1
|
||||
|
||||
- name: 发送成功通知到Telegram
|
||||
if: success()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user