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

基于AKS Pod代理的ADO流水线Docker镜像构建报错求助

Azure DevOps流水线在AKS代理上构建Docker镜像问题解决方案

问题分析

  1. sudo密码错误:AKS代理Pod内的用户默认无免密sudo权限,且systemctl restart docker完全无效——容器环境默认未运行systemd,无法通过systemctl管理Docker守护进程。
  2. Docker守护进程连接失败:仅通过DockerInstaller安装了Docker客户端,未在代理Pod内启动Docker守护进程,也未挂载宿主节点的Docker套接字。

解决方案

1. 移除无效任务

直接删除流水线中的DockerInstaller@0和Bash@3任务,这两个任务对AKS代理环境无实际作用。

2. 配置AKS代理Pod的Docker环境(二选一)

方案A:Docker-in-Docker(DinD)模式(推荐)

在代理Pod内独立运行Docker守护进程,隔离性更强:

  • 修改AKS代理Pod部署配置:
    spec:
      containers:
      - name: ado-agent
        image: mcr.microsoft.com/azure-pipelines/vsts-agent:ubuntu-22.04
        securityContext:
          privileged: true  # DinD必须开启特权模式
        env:
        - name: DOCKER_TLS_CERTDIR
          value: ""  # 关闭TLS简化配置,生产环境建议配置证书
        volumeMounts:
        - mountPath: /var/lib/docker
          name: docker-storage
      volumes:
      - name: docker-storage
        emptyDir:
          medium: Memory  # 用内存tmpfs提升构建性能
    
  • 重启代理Pod后,Docker守护进程会自动启动,Docker@2任务可直接连接使用。

方案B:挂载宿主节点Docker套接字

复用AKS节点上的Docker守护进程,资源占用更低:

  • 修改AKS代理Pod部署配置:
    spec:
      containers:
      - name: ado-agent
        image: mcr.microsoft.com/azure-pipelines/vsts-agent:ubuntu-22.04
        volumeMounts:
        - mountPath: /var/run/docker.sock
          name: docker-sock
        # 将代理用户加入docker组,避免套接字权限问题
        command: ["bash", "-c", "usermod -aG docker $USER && start.sh"]
      volumes:
      - name: docker-sock
        hostPath:
          path: /var/run/docker.sock
          type: Socket
    

3. 最终流水线任务配置

简化后的流水线只需保留核心构建推送任务:

- task: Docker@2
  displayName: Build and publish image to Azure Container Registry
  inputs:
    command: 'buildAndPush'
    containerRegistry: $(dockerRegistryServiceConnection)
    repository: $(imageRepository)
    dockerfile: $(dockerfilePath)
    tags: |
      $(tag)
      latest

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 19:15:58