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

Azure DevOps Server中Docker-Compose执行失败(退出码1)求助

Docker-Compose在Azure DevOps流水线执行报错(退出码1)排查

环境信息

  • 运行平台:Azure DevOps Server流水线
  • 构建代理服务器:Windows Server 2016

流水线执行报错日志

"C:\Program Files\Docker\docker-compose.exe" -f C:\agent\_work\1\s\docker\docker-compose.yml -f C:\agent\.docker-compose.1672864292001.yml -p materialsdatabase up -d --build
error during connect: this error may indicate that the docker daemon is not running: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Dmaterialsdatabase%22%3Atrue%7D%7D": open //./pipe/docker_engine: Access is denied.
##[debug]Exit code 1 received from tool 'C:\Program Files\Docker\docker-compose.exe'
##[debug]STDIO streams have closed for tool 'C:\Program Files\Docker\docker-compose.exe'
##[debug]task result: Failed
##[error]The process 'C:\Program Files\Docker\docker-compose.exe' failed with exit code 1

构建机管理员终端手动执行错误

"C:\Program Files\Docker\docker-compose.exe" -f C:\agent\_work\1\s\docker\docker-compose.yml -f C:\agent\.docker-compose.1672864292001.yml -p materialsdatabase up -d --build
CreateFile C:\agent\.docker-compose.1672779313403.yml: The system cannot find the file specified.

注:缺失的临时文件与核心问题无关

手动启动dockerd日志

time="2023-01-04T15:29:29.988530700-05:00" level=info msg="Starting up"
time="2023-01-04T15:29:30.034570000-05:00" level=info msg="Windows default isolation mode: process"
time="2023-01-04T15:29:30.259637100-05:00" level=info msg="Loading containers: start."
time="2023-01-04T15:29:30.373580700-05:00" level=info msg="Restoring existing overlay networks from HNS into docker"
time="2023-01-04T15:29:30.662499700-05:00" level=error msg="Resolver Setup/Start failed for container nat, \"error in opening name server socket listen udp 172.30.144.1:53: bind: The requested address is not valid in its context.\""
time="2023-01-04T15:29:31.662930000-05:00" level=error msg="Resolver Setup/Start failed for container nat, \"error in opening name server socket listen udp 172.30.144.1:53: bind: The requested address is not valid in its context.\""
time="2023-01-04T15:29:32.665870600-05:00" level=error msg="Resolver Setup/Start failed for container nat, \"error in opening name server socket listen udp 172.30.144.1:53: bind: The requested address is not valid in its context.\""
time="2023-01-04T15:29:33.688807800-05:00" level=info msg="Loading containers: done."
time="2023-01-04T15:29:33.696116400-05:00" level=info msg="Docker daemon" commit=9b96ce992b graphdriver(s)=windowsfilter version=20.10.9
time="2023-01-04T15:29:33.698066000-05:00" level=info msg="starting telemetry service"
time="2023-01-04T15:29:33.705958100-05:00" level=info msg="Daemon has completed initialization"
time="2023-01-04T15:29:33.773500600-05:00" level=info msg="API listen on //./pipe/docker_engine"

补充手动执行错误

C:\agent\_work\1\s>docker-compose -f docker\docker-compose.yml -p material-test-2-icamm up -d
error during connect: this error may indicate that the docker daemon is not running: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.project%3Dmaterial-test-2-icamm%22%3Atrue%7D%7D": open //./pipe/docker_engine: The system cannot find the file specified.

疑问解答

1. 推测是否正确?流水线执行时dockerd未运行?

是的,核心问题确实和dockerd运行状态或权限有关。报错信息里的open //./pipe/docker_engine: Access is denied和The system cannot find the file specified直接指向:要么dockerd没启动(管道不存在),要么流水线代理账户没有访问该管道的权限。

你手动启动dockerd后流水线仍报错,大概率是流水线使用的代理账户不在docker-users用户组中,导致没有权限访问Docker管道;或者dockerd未设置为自动启动,流水线运行时dockerd已经停止。

2. dockerd启动时的错误是否与流水线问题相关?如何验证功能正常?

dockerd启动时的Resolver Setup/Start failed错误和当前流水线问题无关。这个错误是Docker尝试绑定NAT网络的DNS端口(53)失败,通常是端口被其他程序占用,但从日志最后一行API listen on //./pipe/docker_engine可以确认,dockerd已经完成初始化并正常提供API服务,核心功能不受影响。

验证Docker功能是否正常的步骤:

  • 用流水线代理的账户登录构建机,执行docker info或docker run hello-world,如果能正常输出信息或运行容器,说明Docker本身功能正常;
  • 如果执行上述命令出现权限错误,将代理账户添加到本地docker-users组,然后重启代理服务或重新登录账户;
  • 检查dockerd是否设置为自动启动:在服务列表中找到Docker Desktop Service,设置启动类型为“自动”,确保每次机器重启后dockerd都会自动运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 20:20:24