[英]How to use private packages in Azure Pipelines During CI/CD builds
[英]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.