更新
This commit is contained in:
27
.github/workflows/docker-build-deploy.yml
vendored
27
.github/workflows/docker-build-deploy.yml
vendored
@@ -123,19 +123,26 @@ jobs:
|
||||
ssh -p $SSH_PORT $SSH_USER@$SSH_HOST \
|
||||
"mkdir -p $COMPOSE_DIR/api"
|
||||
|
||||
# 第一步:先停止并删除旧容器(使用服务器上现有的 docker-compose.yml)
|
||||
# 第一步:强制停止并删除所有旧容器
|
||||
echo "停止并删除旧容器..."
|
||||
ssh -p $SSH_PORT $SSH_USER@$SSH_HOST "
|
||||
cd $COMPOSE_DIR/api 2>/dev/null || exit 0
|
||||
if [ -f '$COMPOSE_FILE' ]; then
|
||||
echo '使用旧配置停止容器...'
|
||||
docker-compose -f '$COMPOSE_FILE' down --remove-orphans || true
|
||||
fi
|
||||
# 先尝试使用 docker-compose down
|
||||
cd $COMPOSE_DIR/api 2>/dev/null && docker-compose -f '$COMPOSE_FILE' down --remove-orphans 2>/dev/null || true
|
||||
|
||||
# 清理可能残留的容器
|
||||
echo '清理残留容器...'
|
||||
docker stop life-echo-api-prod life-echo-celery-worker life-echo-postgres life-echo-redis 2>/dev/null || true
|
||||
docker rm -f life-echo-api-prod life-echo-celery-worker life-echo-postgres life-echo-redis 2>/dev/null || true
|
||||
# 强制停止并删除所有 life-echo 相关容器(按名称匹配)
|
||||
echo '强制清理所有 life-echo 容器...'
|
||||
docker ps -a --filter 'name=life-echo' --format '{{.ID}}' | xargs -r docker rm -f 2>/dev/null || true
|
||||
|
||||
# 再次确保指定容器被删除
|
||||
echo '确保指定容器被删除...'
|
||||
docker rm -f life-echo-api-prod life-echo-celery-worker life-echo-postgres life-echo-redis life-echo-celery-beat life-echo-flower 2>/dev/null || true
|
||||
|
||||
# 等待容器完全停止
|
||||
sleep 3
|
||||
|
||||
# 验证容器已删除
|
||||
echo '验证容器状态...'
|
||||
docker ps -a --filter 'name=life-echo' || true
|
||||
"
|
||||
|
||||
# 第二步:复制新的配置文件到远程服务器
|
||||
|
||||
Reference in New Issue
Block a user