我在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 /代理/外部对象
答案 0 :(得分:0)
我得到了关于vsts-agent github问题列表的问题的答案 GithubIssueWithAnswer
似乎用于在docker容器内启动任务的预览功能在Windows上不起作用。另外需要注意的是,我已经验证了预览功能在linux基础内核上运行良好。 -