已挂载的主机卷不可从 Azure Pipelines 中的主机写入

Mounted host volume is not writable from host in Azure Pipelines

我正在从主机到容器安装一个卷,在 运行 连接 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'

您可以尝试在管道上创建一个文件夹:

- 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 挂载它,这里的答案可能对此有所帮助:

基本上你必须改变你的步骤。