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

Jenkinsfile使用Docker PowerShell镜像执行任务时挂起该如何解决?

问题根因
  • 配置中docker运行参数携带了-i、-t两个交互式场景专用参数:-i会保持容器标准输入持续开启,-t会为容器分配伪终端,Jenkins流水线属于后台非交互执行场景,伪终端会导致脚本执行完成后容器进程无法正常退出,最终出现任务持续挂起的问题。
  • 若无需捕获powershell命令的标准输出,可去掉returnStdout: true配置,进一步降低异常出现概率。
修复后配置
pipeline {
    agent {
        docker {            
            image 'mcr.microsoft.com/azure-powershell'
            args "--mount type=bind,src=/opt,dst=/opt --entrypoint=''"
        }
    }
    stages {
        stage('PwShell') {
            steps {
                powershell(returnStdout: true, script: 'Write-Output "PowerShell is mighty!"')
            }
        }
    }
}
可选优化方案

如果修改参数后仍有偶发挂起的情况,可在powershell脚本末尾显式添加exit 0强制进程执行完成后退出,修改后的步骤配置如下:

powershell(returnStdout: true, script: 'Write-Output "PowerShell is mighty!"; exit 0')

内容的提问来源于stack exchange,提问作者Venkatesh Ramanujam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 14:54:03