簡體   English   中英

為什么在 Azure Pipelines 構建期間“/”不歸 root 所有?

[英]Why is "/" not owned by root during Azure Pipelines builds?

我正在嘗試調試為什么 snaps 不在 Azure 管道構建上運行,我發現在這些構建過程中“/”不歸 root 所有,它歸 uid 500(不是 0)所有。

有誰知道為什么“/”不歸root所有? 這是 Azure Pipelines 的錯誤嗎?

例如下面的例子不起作用:

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

這會失敗,因為如果“/”不屬於 root,則 snap-confine(由 snapcraft/snapd 運行)將不會運行。 我們(snapd 開發人員)不希望在不理解為什么會出現這種情況的情況下允許 snap-confine 以非 root 用戶擁有的“/”運行,因為這似乎是 Azure Pipelines 的一個錯誤。

代理用完了工作目錄(由系統變量Pipeline.Workspace / 環境變量PIPELINE_WORKSPACE )。 您只能訪問托管代理上的該工作目錄。 這不是錯誤,而是故意限制。

如果您需要訪問文件系統的根目錄,請配置您自己的私有代理。

您可以嘗試在代理ubuntu-18.04上運行您的管道。 我可以用代理 ubuntu-16.04 重現同樣的問題。 但是問題似乎在代理 ubuntu-18.04 上消失了。

如果要配置自己的自托管代理。 你可以參考這里的詳細步驟

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM