Azure devops 中的 Docker 任务不接受“$(pwd)”作为变量

ach*_*bar 4 azure docker azure-devops

我尝试通过 Azure Devops 中的 docker 任务以及 docker 任务中的构建来运行 docker 命令。作为 docker 命令量的变量,我将其作为值 在此输入图像描述

但它一直失败并出现错误

/usr/bin/docker: Error response from daemon: create $(pwd)/out: "$(pwd)/out" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path.
Run Code Online (Sandbox Code Playgroud)

我尝试在本地计算机中使用相同的 -v 值给出相同的 docker run 命令,并且效果完美。所以我猜这是一个 Azure DevOps 问题或者是我忘记提供的值

我的主机代理是ubuntu16 构建任务如下 在此输入图像描述 在此输入图像描述

Edw*_*son 9

您正在尝试引用名为 的变量pwd。Azure Pipelines 中没有此类预定义变量。

您提到这在您的本地计算机上有效,但这并不是因为pwd定义了变量。(事实上​​,您的环境中可能没有环境变量。)那是因为POSIX 命令替换。它实际上是在执行命令。pwd$(pwd)pwd

此 POSIX shell 语法在 Azure Pipelines 配置中不起作用。

请改为使用Azure Pipelines 变量之一。

例如,如果要映射sources目录,可以将volumes字段设置为:

$(Build.SourcesDirectory):/src
Run Code Online (Sandbox Code Playgroud)

或者映射源代码和二进制文件:

 $(Build.SourcesDirectory):/src
 $(Build.BinariesDirectory):/build
Run Code Online (Sandbox Code Playgroud)