Azure devops 为什么是/&引用;Azure管道生成期间不归root所有?

Azure devops 为什么是/&引用;Azure管道生成期间不归root所有?,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我正在尝试调试为什么快照不在Azure管道构建上运行,我发现在这些构建期间“/”不属于root,而是属于uid 500(不是0) 有人知道为什么“/”不归root所有吗?这是Azure管道的错误吗 例如,以下示例不起作用: pr: - 1.* jobs: - job: ldc2_snap timeoutInMinutes: 0 pool: vmImage: ubuntu-16.04 steps: - script: | set -x snap v

我正在尝试调试为什么快照不在Azure管道构建上运行,我发现在这些构建期间“/”不属于root,而是属于uid 500(不是0)

有人知道为什么“/”不归root所有吗?这是Azure管道的错误吗

例如,以下示例不起作用:

pr:
- 1.*

jobs:
- job: ldc2_snap
  timeoutInMinutes: 0
  pool:
    vmImage: ubuntu-16.04
  steps:
  - script: |
      set -x
      snap version
      lxd --version
      sudo apt-get update
      sudo snap install --classic --candidate snapcraft
      export PATH="${PATH}:/snap/bin"
      snapcraft --version
      snapcraft
    displayName: Build ldc2 snap package

这会失败,因为如果根目录不拥有“/”,快照限制(由snapcraft/snapd运行)将不会运行。我们(snapd开发人员)不希望在不理解为什么会出现这种情况的情况下允许snap Constrict与非root所有的“/”一起运行,因为这似乎是Azure管道的一个bug

代理运行完工作目录(由系统变量
Pipeline.Workspace
/environment variable
Pipeline\u Workspace
定义)。您只能访问托管代理上的工作目录。这不是一个错误,这是一个故意的限制


如果您需要访问文件系统的根目录,请提供您自己的专用代理。

您可以尝试在代理上运行管道ubuntu-18.04。我可以用代理ubuntu-16.04重现同样的问题。但是这个问题似乎在ubuntu-18.04代理上消失了


如果要配置自己的自托管代理。您可以参考详细的步骤

,但如何安装软件,如使用
sudo apt get
?它可以访问工作目录之外的文件,工作正常,只是如果“/”不是root所有的,快照就不能运行(这有一个很好的安全原因,请参阅)嗨@Ian Johnson,你试过代理ubuntu-18.04吗?这是怎么回事?这个bug最终在上游得到了解决,请看是的,根据github的问题,所有ubuntu图像最终都得到了解决,请看