You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins Pipeline部署Flask应用卡滞Build阶段无法推进至Test阶段求助

问题解决:Jenkins Pipeline卡在Flask应用启动阶段无法推进

问题根源

你的Pipeline在Build阶段执行python3 flaskhome.py时,Flask应用是前台运行的,会持续占用Jenkins的执行线程,导致后续的echo 'building'和Test阶段完全无法执行,流程直接停滞在应用启动的日志输出环节。

解决方案

1. 后台启动Flask应用

把Flask应用的启动命令改为后台运行,释放Jenkins的执行线程。可以用nohup命令结合日志重定向实现:

nohup python3 flaskhome.py > flask_app.log 2>&1 &
  • nohup:让进程脱离当前终端运行,即使当前会话结束也不会终止
  • > flask_app.log 2>&1:把标准输出和错误输出都写入日志文件,方便后续排查
  • &:把进程放到后台执行

2. 等待应用启动完成

添加轮询检查,确保Flask服务真正启动后再进入Test阶段,避免测试步骤因为服务未就绪而失败。比如默认Flask端口是5000,用curl轮询:

until curl -s http://localhost:5000; do sleep 2; done

如果你的应用有特定的健康检查接口,也可以替换成对应的URL,比如curl -s http://localhost:5000/health。

3. 移除重复的代码拉取步骤

你的Checkout阶段已经通过checkout scmGit拉取了代码,Build阶段不需要再执行git branch: 'main', ...命令,直接删掉即可,避免冗余操作。

修改后的完整Pipeline代码

pipeline {
    agent any

    stages {
        stage('Checkout') {
            steps {
                checkout scmGit(branches: [[name: '*/main']], extensions: [], userRemoteConfigs: [[credentialsId: '9c4a0738-2cf4-4485-b83c-f8683dab65a0', url: 'https://github.com/clinton-pillay7/jenkins-flask-project']])
            }
        }
    
        stage("Build") {
            steps {
                sh 'pip uninstall -y pymongo'
                sh 'pip install -r requirements.txt'
                sh 'pip install pymongo'
                # 后台启动Flask应用并记录日志
                sh 'nohup python3 flaskhome.py > flask_app.log 2>&1 &'
                # 等待应用启动完成
                sh 'until curl -s http://localhost:5000; do sleep 2; done'
                echo '应用构建并启动完成'
            }
        }
            
        stage("Test"){
            steps{
                echo "测试阶段执行"
                # 这里可以添加实际的测试命令,比如curl接口验证输出
                sh 'curl -s http://localhost:5000'
            }
        }
    }
}

额外注意事项

  • 如果你的Flask应用使用了非默认端口,记得修改curl命令中的端口号
  • 若Jenkins agent是容器化的,要确保容器内部可以访问到Flask应用的端口
  • 后续可以添加进程清理步骤,避免每次构建后残留旧的Flask进程

内容的提问来源于stack exchange,提问作者Clinton P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:55:38