in1
Some checks failed
CI / build (20.15.1) (push) Failing after 23m2s

This commit is contained in:
shanshanzhong 2025-09-26 09:48:00 -07:00
parent 2ee249f6f7
commit 38f64f770d

View File

@ -404,7 +404,25 @@ jobs:
docker push ${{ env.DOCKER_REGISTRY }}/ppanel/ppanel-user-web:${{ env.VERSION }}
fi
- name: SSH连接预检查
if: env.BUILD_TARGET == 'admin' || env.BUILD_TARGET == 'user' || env.BUILD_TARGET == 'both'
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
port: ${{ secrets.PORT }}
timeout: 60s
command_timeout: 30s
debug: true
script: |
echo "=== SSH连接测试 ==="
echo "连接时间: $(date)"
echo "服务器主机名: $(hostname)"
echo "当前用户: $(whoami)"
echo "系统信息: $(uname -a)"
echo "Docker版本: $(docker --version 2>/dev/null || echo 'Docker未安装')"
echo "✅ SSH连接成功"
- name: 部署管理面板到服务器
if: env.BUILD_TARGET == 'admin' || env.BUILD_TARGET == 'both'
@ -416,6 +434,16 @@ jobs:
port: ${{ secrets.PORT }}
timeout: 300s
command_timeout: 600s
debug: true
use_insecure_cipher: false
cipher: aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
fingerprint: ""
proxy_host: ""
proxy_port: ""
proxy_username: ""
proxy_password: ""
proxy_timeout: 30s
proxy_use_insecure_cipher: false
script: |
echo "=== SSH变量调试信息 ==="
echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}"
@ -480,24 +508,53 @@ jobs:
# 安全停止和移除容器
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
CONTAINER_NAME="ppanel-admin-web"
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 "容器移除成功"
# 检查容器是否存在
if docker ps -aq -f name=$CONTAINER_NAME | grep -q .; then
echo "发现现有容器,开始清理..."
# 检查容器是否正在运行
if docker ps -q -f name=$CONTAINER_NAME | grep -q .; then
echo "停止运行中的容器..."
docker stop $CONTAINER_NAME --time=15 || true
sleep 5
fi
# 检查容器是否正在被移除
echo "检查容器移除状态..."
for i in {1..15}; do
# 尝试获取容器状态
CONTAINER_STATUS=$(docker inspect $CONTAINER_NAME --format='{{.State.Status}}' 2>/dev/null || echo "not_found")
if [ "$CONTAINER_STATUS" = "not_found" ]; then
echo "✅ 容器已不存在"
break
elif [ "$CONTAINER_STATUS" = "removing" ]; then
echo "⏳ 容器正在移除中,等待完成... $i/15"
sleep 3
else
echo "等待容器停止... $i/10"
echo "尝试移除容器... $i/15"
if docker rm -f $CONTAINER_NAME 2>/dev/null; then
echo "✅ 容器移除成功"
break
else
echo "⚠️ 容器移除失败,重试..."
sleep 2
fi
fi
# 最后一次尝试强制清理
if [ $i -eq 15 ]; then
echo "🔧 执行强制清理..."
docker kill $CONTAINER_NAME 2>/dev/null || true
sleep 2
docker rm -f $CONTAINER_NAME 2>/dev/null || true
sleep 2
fi
done
else
echo "✅ 未发现现有容器"
fi
echo "启动新容器..."
@ -535,6 +592,16 @@ jobs:
port: ${{ secrets.PORT }}
timeout: 300s
command_timeout: 600s
debug: true
use_insecure_cipher: false
cipher: aes128-ctr,aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
fingerprint: ""
proxy_host: ""
proxy_port: ""
proxy_username: ""
proxy_password: ""
proxy_timeout: 30s
proxy_use_insecure_cipher: false
script: |
echo "=== SSH变量调试信息 ==="
echo "DOCKER_REGISTRY: ${{ env.DOCKER_REGISTRY }}"
@ -599,24 +666,53 @@ jobs:
# 安全停止和移除容器
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
CONTAINER_NAME="ppanel-user-web"
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 "容器移除成功"
# 检查容器是否存在
if docker ps -aq -f name=$CONTAINER_NAME | grep -q .; then
echo "发现现有容器,开始清理..."
# 检查容器是否正在运行
if docker ps -q -f name=$CONTAINER_NAME | grep -q .; then
echo "停止运行中的容器..."
docker stop $CONTAINER_NAME --time=15 || true
sleep 5
fi
# 检查容器是否正在被移除
echo "检查容器移除状态..."
for i in {1..15}; do
# 尝试获取容器状态
CONTAINER_STATUS=$(docker inspect $CONTAINER_NAME --format='{{.State.Status}}' 2>/dev/null || echo "not_found")
if [ "$CONTAINER_STATUS" = "not_found" ]; then
echo "✅ 容器已不存在"
break
elif [ "$CONTAINER_STATUS" = "removing" ]; then
echo "⏳ 容器正在移除中,等待完成... $i/15"
sleep 3
else
echo "等待容器停止... $i/10"
echo "尝试移除容器... $i/15"
if docker rm -f $CONTAINER_NAME 2>/dev/null; then
echo "✅ 容器移除成功"
break
else
echo "⚠️ 容器移除失败,重试..."
sleep 2
fi
fi
# 最后一次尝试强制清理
if [ $i -eq 15 ]; then
echo "🔧 执行强制清理..."
docker kill $CONTAINER_NAME 2>/dev/null || true
sleep 2
docker rm -f $CONTAINER_NAME 2>/dev/null || true
sleep 2
fi
done
else
echo "✅ 未发现现有容器"
fi
echo "启动新容器..."