在专用管道中设置对VSTS代理的docker权限

kum*_*mar 2 docker azure-devops azure-pipelines

我已使用linux vm设置了专用管道,并且已安装代理,并且在门户网站中显示代理处于活动状态。我也有安装docker。在同一台机器上,如果我使用sudo docker则可以工作。因此,我确定VSTS代理运行命令时这是权限问题。不知道我需要给哪个用户哪个权限,以便从VSTS初始化构建时运行docker命令。

尝试连接到Unix:///var/run/docker.sock上的Docker守护程序套接字时获得的权限被拒绝:发布 http://%2Fvar%2Frun%2Fdocker.sock/v .37 / build?buildargs =%7B %7D&cachefrom =%5B]&cgroupparent =&cpuperiod = 0&cpuquota = 0&cpusetcpus =&cpusetmems =&cpushares = 0&dockerfile = Dockerfile&labels =%7B%7D&memory = 0&memswap = 0&networkmode = default&rm =&session = a53bbddc77c2f9c2f9c2f9c2f9c2f9e2e6e7f9e2e6e2e6e7e2e6e6e6e6e6e6e6e6e6e6e6e6e6e2e7e7e7e7e7e0e7e8e7e0e7e8e7e0e人* 8b9&shmsize = 0&t = mycontainerreg.azurecr.io%2Ftk-dashboard%3A853&target =&ulimits = null:拨打Unix /var/run/docker.sock:连接:权限被拒绝

/ usr / bin / docker失败,返回码:***

Pat*_*SFT 5

在VSTS中,执行整个构建管道的是构建服务帐户。此帐户还应该运行命令。

注意,该服务是在配置构建代理期间设置的。您可以将构建代理作为systemd服务运行。更多详细信息,请参阅本教程

您将需要授予适当的权限。用户只需要添加到组docker。

sudo usermod -a -G docker user

还重新启动systemd服务,然后尝试再次触发构建。

  • 请注意,添加机器后需要重启 (2认同)
  • 我最终运行了`./env.sh; sudo ./svc.sh 停止;sudo ./svc.sh start` 这解决了我的问题。 (2认同)
  • 需要明确的是 - 您不需要重新启动虚拟机。只是代理上运行的服务(进程)。 (2认同)