我正在從主機安裝一個卷到容器,該卷在運行 docker 容器時不存在。
volumes:
- "../foo:/app/foo"
該foo檔案夾將由 docker 創建。容器將在foo. 同樣,主機內的另一個應用程式將在foo. 我的期望是所有內容都應該放在foo容器應用程式和主機應用程式的檔案夾中。
這在 Mac 上運行良好,但在 Azure Pipelines 中運行同樣無法從主機創建其他檔案和檔案夾。
Error: EACCES: permission denied, mkdir './foo'
at Object.mkdirSync (fs.js:921:3)
我曾嘗試z在卷掛載結束時添加,但沒有奏效 - ../foo:/app/foo:Z。我試圖運行chmod,但該操作是不允許的。
Azure 管道:
pool:
vmImage: 'ubuntu-latest'
uj5u.com熱心網友回復:
你可以試試這個在管道上創建一個檔案夾:
- task: CmdLine@2
inputs:
script: 'mkdir .foo'
workingDirectory: System.DefaultWorkingDirectory
所以這實際上會在 System.DefaultWorkingDirectory/.foo 中創建一個 .foo 檔案夾
現在,如果您想進入該檔案夾,您可以執行以下操作:
- task: CmdLine@2
inputs:
script: |
cd '($System.DefaultWorkingDirectory)/.foo'
dir
或者您可以在代碼中查看 ref 的完整路徑:
- task: CmdLine@2
inputs:
script: |
echo '($System.DefaultWorkingDirectory)/.foo'
然后,一旦創建了檔案,您就可以使用 docker 安裝它,這里的答案可能會有所幫助:
從 yaml/compose 檔案將主機目錄掛載到 docker 容器
本質上,您必須切換步驟。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/414835.html
標籤:
