使用 docker 的 Azure DevOps 自托管代理

标签 azure azure-devops azure-pipelines azure-aks azure-pipelines-build-task

我已经安装了 Azure 自托管代理 (Linux),并按照 https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/docker?view=azure-devops 中的文档进行操作。 .

我已经成功安装了代理,但是当我运行编译和构建 docker 镜像的 Docker 构建任务时,我收到错误无法连接到位于 unix:///var/run/docker 的 Docker 守护进程。短袜。 docker 守护进程是否正在运行?

在谷歌搜索问题后,下面的代码似乎应该挂载 docker.sock 并且我应该能够成功构建和推送 docker 镜像,但这在 AKS 上不起作用

        volumeMounts:
        - mountPath: /var/run/docker.sock
          name: docker-volume
      volumes:
      - name: docker-volume
        hostPath:
          path: /var/run/docker.sock

有人遇到过这样的问题吗?我正在使用 AzureDevops Docker@2 任务进行构建,代理在 AKS 1.19.11

上运行

最佳答案

自 AKS 1.19 起,它使用 containerd 作为容器运行时 - 这意味着您无法再直接在 AKS 内构建 docker 镜像。请参阅this文章了解详细信息和可能的解决方法。

总的来说,我发现VMSS-based self-hosted Agents对于 Azure DevOps 而言,这是基于容器的代理的绝佳替代方案。

关于使用 docker 的 Azure DevOps 自托管代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69254636/

相关文章:

azure - 构建不会创建任何工件

azure - 设置-AzSqlServerActiveDirectoryAdministrator : Cannot find the Azure Active Directory object 'service_principal_name'

Azure 服务定义 vmsize

c# - 如何让Visual Studio Online上的Builder还原所有NuGet包?

azure - 如何使用基本身份验证访问 TFS Rest API?

azure - 将 SAS token 重写(附加)到 azure cdn 中的 url

azure - 一旦失败的测试百分比高于阈值,如何使 Azure DevOps 中的管道运行失败

azure - 如何在 Azure Devops 发布管道中使用 PowerShell 设置环境变量?

c# - Azure 管道 : "No packages matched the search pattern."

azure - 从脚本返回对象变量 - Azure YAML 管道