gpt4 book ai didi

在自托管代理上运行容器作业时,Azure DevOps YAML 构建失败

转载 作者:行者123 更新时间:2023-12-02 06:40:05 24 4
gpt4 key购买 nike

我正在尝试在我的自托管代理上运行容器作业,以从我的 ACR 读取容器镜像。

当您使用 Microsoft 托管代理时,此代码有效:

pool:
vmImage: 'ubuntu-18.04'
container:
image: myprivate.azurecr.io/windowsservercore:1803
endpoint: my_acr_connection

所以我想要的是使用以下代码:

pool: Default
container:
image: myprivate.azurecr.io/windowsservercore:1803
endpoint: my_acr_connection

但是当我运行管道时,我在“初始化作业”步骤中收到此错误:

##[error]File not found: 'docker'

我的默认代理池中只有一个代理。我的代理是按照以下文档创建的:https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/docker?view=azure-devops#linux

我想这与代理功能有关,但我想知道我正在尝试的是否实际上可行,如果可行,您是否可以为我提供一些有关如何解决我的问题的建议。

提前谢谢您。

编辑:

我能够处理这个错误。我只需要在容器内的 Dockerfile 中安装 docker。

现在我在“初始化容器”管道的步骤中收到另一个错误:

Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: exec: "/__a/externals/node/bin/node": stat /__a/externals/node/bin/node: no such file or directory: unknown

最佳答案

所以我遇到了同样的问题:

“来自守护程序的错误响应:OCI 运行时创建失败:container_linux.go:370: 启动容器进程导致:exec: "/__a/externals/node/bin/node": stat/__a/externals/node/bin/node:没有这样的文件或目录:未知”

就我而言,我使用的是在 Windows 10 上的 WSL1 ubuntu 上运行的自托管代理,并在 WSL2 中使用 Docker4Windows。问题在于,带有 docker 的 WSL1 在将卷安装为目录时存在问题,必须使用 Windows 路径 (/c/users....) 而不是本地 linux 路径 (/home/user/linuxuser/...)。

将我的代理移至 WSL2 后问题得到解决,安装问题不会发生。

无论 WSL 问题如何,问题都是卷/__a/externals 无法挂载到代理节点中的容器上。要测试的一件事是在 azure devops 管道中检查失败的步骤日志并检查失败的 docker 命令。您将看到类似这样的内容:

/usr/bin/docker create --name .... -v "/home/user/agent_directory/externals":"/__a/externals":ro ... CONTAINER_IMAGE

docker start b39b96fb ....

来自守护程序的错误响应:OCI 运行时创建失败...

因此,您可以检查启动镜像并手动安装卷,以查看它们是否正确安装,以检测 docker 的问题(可能是权限问题或其他 docker linux 相关问题)。

docker run --rm -ti -v "/home/user/agent_directory/externals":"/__a/externals":ro mcr.microsoft.com/dotnet/core/sdk:3.1 bash

(在我的例子中,图像是 dotnet/core,但任何图像都可能出现问题)。

关于在自托管代理上运行容器作业时,Azure DevOps YAML 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64984455/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com