在另一个容器内运行任务的VSTS docker代理退出,错误代码为127

时间:2018-02-13 16:16:11

标签: docker azure-devops azure-pipelines-build-task

我在docker容器中运行私有vsts代理

docker run -e VSTS_ACCOUNT=<vstsaccount> -e VSTS_TOKEN=<vstspat> -e 
VSTS_WORK=/var/vsts -v /var/run/docker.sock:/var/run/docker.sock  
-v D:/dockertestmount:/var/vsts 
-d microsoft/vsts-agent:ubuntu-16.04-docker-17.03.0-ce-standard

通过调用此docker命令,我在vsts在线代理队列中看到一个成功的代理注册。

我正在尝试使用此预览功能从此vsts代理(在这种情况下本身就是一个docker容器)中启动docker容器内的任务。

https://github.com/Microsoft/vsts-agent/blob/master/docs/preview/runtaskindocker.md

这意味着docker vsts代理容器将侦听构建请求,如果有,它将在另一个docker容器中启动任务。

我想在构建定义中使用的yaml文件是:

phases:
- phase: consoleappbuild
  variables:
    _PREVIEW_VSTS_DOCKER_IMAGE: "microsoft/dotnet-nightly"
  queue: Default
  steps:
  - bash: |
        cd ConsoleApp1
        dotnet restore
        dotnet build

通过使用这个vsts yaml文件,我看到vsts docker代理启动了一个新的容器来构建。

也在新任务泊坞窗容器中下载了源代码。

但是在构建过程中,任务容器会突然退出并显示错误代码:

 2018-02-13T19:10:21.7956034Z bash: line 0: cd: /var/vsts/2/s: No such file or directory
 2018-02-13T19:10:21.7981864Z bash: /vsts/agent/externals/node/bin/node: No such file or 
 directory
 [error]Exit code 127 returned from process: file name
 [error]Exit code 127 returned from process: file name
    '/usr/local/bin/docker', arguments 'exec -u 0  -e "INPUT_TARGETTYPE=inline" 
    -e "INPUT_FILEPATH=/var/vsts/1/s" -e "INPUT_ARGUMENTS=" -e 
    "INPUT_SCRIPT=cd ConsoleApp1 ----

此控制流程中出错的原因是什么?

似乎问题在于音量增加。任务容器无法使用已安装的卷。

我已经检查了日志,并且在/ var / vsts / 1 / s和上安装了卷,创建了任务容器 的/ var /代理/外部对象

1 个答案:

答案 0 :(得分:0)

我得到了关于vsts-agent github问题列表的问题的答案 GithubIssueWithAnswer

似乎用于在docker容器内启动任务的预览功能在Windows上不起作用。另外需要注意的是,我已经验证了预览功能在linux基础内核上运行良好。 -