首页 文章

在私有管道中为VSTS代理设置docker权限

提问于
浏览
2

我已经设置了一个带有linux vm的私有管道,代理就是安装,在门户中它显示了代理是活动的 . 我也有安装docker . 在同一台机器上如果我使用sudo docker它可以工作 . 所以我确信当VSTS代理运行命令时这是一个权限问题 . 不知道我需要给哪个用户提供哪些预设,以便在我从VSTS初始化构建时运行docker命令 .

尝试在unix上连接到Docker守护程序套接字时获得权限被拒绝:///var/run/docker.sock:发布http://%2Fvar%2Frun%2Fdocker.sock/v.37/build?buildargs =%图7B%7D&cachefrom =%5B]&cgroupparent =&cpuperiod = 0&cpuquota = 0&cpusetcpus =&cpusetmems =&cpushares = 0&dockerfile = Dockerfile&标签=%7B%7D&存储器= 0&memswap = 0&网络模式=默认&RM =&会话= a53bebddc77c89993b6e464d9f2a56fac9b *** E62 *** 094 *** fe70355df2c8dfcf * ** 8b9&shmsize = 0&t = mycontainerreg.azurecr.io%2Ftk-dashboard%3A853&target =&ulimits = null:拨打unix /var/run/docker.sock:connect:权限被拒绝/ usr / bin / docker失败并返回代码:** *

1 回答

  • 2

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

    请注意,该服务是在构建代理程序的配置期间设置的 . 您可以将构建代理作为systemd服务运行 . 更多细节请参考这个tutorial .

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

    sudo usermod -a -G docker user

    还要重新启动systemd服务并尝试再次触发构建 .

相关问题