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

Azure Pipelines构建失败报错:容器未运行,如何解决?

解决Azure Pipelines容器启动失败的问题

我来帮你搞定这个报错!你遇到的Container ... is not running错误,核心原因是你的Windows容器启动后立刻就退出了——Azure Pipelines需要容器保持运行状态,才能在里面执行后续的构建脚本。

问题根源

你的Dockerfile里的ENTRYPOINT设置的是一个一次性执行的PowerShell命令:

ENTRYPOINT ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

这个命令执行完没有后续的持续运行进程,容器启动后就直接停止了,Pipeline自然没法在一个已停止的容器里跑任务。

两种修复方案

方案1:修改Dockerfile,让容器持续运行

把ENTRYPOINT改成能让容器一直保持运行的命令,比如让PowerShell进入休眠状态(足够Pipeline完成所有任务就行):

FROM mcr.microsoft.com/windows/servercore:1809
# 保留你原有的配置内容
ENTRYPOINT ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; Start-Sleep -Seconds 86400"]

这里用Start-Sleep -Seconds 86400让容器休眠一天,完全能覆盖常规构建任务的时长。

方案2:在Pipeline配置中覆盖容器启动命令

如果不想修改Dockerfile,可以直接在azure-pipelines.yml里指定容器的entrypoint参数,覆盖Dockerfile的设置:

pool:
  vmImage: windows-2019
container:
  image: my-docker-container
  entrypoint: ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue'; Start-Sleep -Seconds 86400"]
steps:
- script: |
    echo 'run build script'

额外提醒

Azure Pipelines使用容器执行任务时,不管是Windows还是Linux容器,都要求容器必须处于运行状态。对于Windows容器来说,一定要确保启动命令能维持一个持续运行的进程,否则容器会直接退出,导致后续任务无法执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:04:17