Azure容器服务容器作为VSTS代理来构建docker映像

时间:2018-06-26 19:51:54

标签: docker azure-devops azure-container-service

我创建了ACS实例并将其注册为VSTS代理。我使用图像lenisha/vsts-agent-infrastructure使用Terraform。无论如何,我都想构建docker映像,但是使用来自ACS的代理,我得到了错误:Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?。所以问题是是否有办法进入docker daemon?我无法找到有关如何在ACS(-v /var/run/docker.sock:/var/run/docker.sock)中挂载docker.sock的信息。

1 个答案:

答案 0 :(得分:2)

只需参考以下博客:Using the Visual Studio Team Services Agent Docker Images

  

支持使用容器构建源代码的代理最后,我们来   到您最感兴趣的部分。我们实际上如何设置一个   这些代理商,并避免上述错误?

     

有一个名为VSTS_WORK的环境变量,它指定   代理商应在哪里完成工作。我们可以更改位置   目录和卷的安装方式,以便在Docker容器中   在主机上运行,​​它将有权访问文件。

     

要创建能够以这种方式使用docker的代理,请执行以下操作:

docker run -e VSTS_ACCOUNT=<youraccountname>  \
  -e VSTS_TOKEN=<your-account-Private-access-token> \
  -e VSTS_WORK=/var/vsts -v /var/run/docker.sock:/var/run/docker.sock \
  -v /var/vsts:/var/vsts -d \ microsoft/vsts-agent:ubuntu-16.04-docker-17.03.0-ce-standard
     

此处的重要命令是-e VSTS_WORK=/var/vsts,它告诉   代理来完成/var/vsts文件夹中的所有工作。然后音量   使用-v /var/vsts:/var/vsts挂载文件夹可以运行   VSTS代理中的docker容器,仍然可以看到所有文件。


更新:

根据我的研究,似乎找不到从ACS容器内部的主机装载/var/run/docker.sock的方法,例如此线程中提到的问题:Mounting volume in Azure-Container-Service not working for traefik.toml and /var/run/docker.sock