This commit is contained in:
parent
92e298ee4e
commit
0f58c4ef7c
@ -369,6 +369,8 @@ jobs:
|
|||||||
username: ${{ secrets.USERNAME }}
|
username: ${{ secrets.USERNAME }}
|
||||||
key: ${{ secrets.KEY }}
|
key: ${{ secrets.KEY }}
|
||||||
port: ${{ secrets.PORT }}
|
port: ${{ secrets.PORT }}
|
||||||
|
timeout: 300s
|
||||||
|
command_timeout: 600s
|
||||||
script: |
|
script: |
|
||||||
echo "=== SSH变量调试信息 ==="
|
echo "=== SSH变量调试信息 ==="
|
||||||
echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}"
|
echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}"
|
||||||
@ -377,16 +379,69 @@ jobs:
|
|||||||
echo "BRANCH: ${{ env.BRANCH }}"
|
echo "BRANCH: ${{ env.BRANCH }}"
|
||||||
|
|
||||||
echo "=== 部署管理面板 ==="
|
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 \
|
docker run -d \
|
||||||
--name ppanel-admin-web \
|
--name ppanel-admin-web \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
-p 3001:3000 \
|
-p 3001:3000 \
|
||||||
-e NEXT_PUBLIC_API_URL=${{ env.NEXT_PUBLIC_API_URL }} \
|
-e NEXT_PUBLIC_API_URL=${{ env.NEXT_PUBLIC_API_URL }} \
|
||||||
${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-admin-web:${{ env.VERSION }}
|
${{ 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: 部署用户面板到服务器
|
- name: 部署用户面板到服务器
|
||||||
if: env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both'
|
if: env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both'
|
||||||
@ -396,6 +451,8 @@ jobs:
|
|||||||
username: ${{ secrets.USERNAME }}
|
username: ${{ secrets.USERNAME }}
|
||||||
key: ${{ secrets.KEY }}
|
key: ${{ secrets.KEY }}
|
||||||
port: ${{ secrets.PORT }}
|
port: ${{ secrets.PORT }}
|
||||||
|
timeout: 300s
|
||||||
|
command_timeout: 600s
|
||||||
script: |
|
script: |
|
||||||
echo "=== SSH变量调试信息 ==="
|
echo "=== SSH变量调试信息 ==="
|
||||||
echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}"
|
echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}"
|
||||||
@ -404,16 +461,69 @@ jobs:
|
|||||||
echo "BRANCH: ${{ env.BRANCH }}"
|
echo "BRANCH: ${{ env.BRANCH }}"
|
||||||
|
|
||||||
echo "=== 部署用户面板 ==="
|
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 \
|
docker run -d \
|
||||||
--name ppanel-user-web \
|
--name ppanel-user-web \
|
||||||
--restart unless-stopped \
|
--restart unless-stopped \
|
||||||
-p 3002:3000 \
|
-p 3002:3000 \
|
||||||
-e NEXT_PUBLIC_API_URL=${{ env.NEXT_PUBLIC_API_URL }} \
|
-e NEXT_PUBLIC_API_URL=${{ env.NEXT_PUBLIC_API_URL }} \
|
||||||
${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }}
|
${{ 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
|
- name: 发送成功通知到Telegram
|
||||||
if: success()
|
if: success()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user