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

时间:2019-01-11 09:37:03

标签: azure docker azure-devops

我尝试通过内置dev任务在Azure devops中通过docker任务运行docker命令。 作为docker命令的音量变量,我将此作为值 enter image description here

但是它始终失败并显示错误

/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.

我尝试在本地计算机中使用相同的-v值提供相同的docker run命令,这非常有效。所以我想这是Azure开发问题或我忘记给出的值

我的托管代理是ubuntu16 构建任务如下 enter image description here enter image description here

1 个答案:

答案 0 :(得分:4)

您正在尝试引用名为pwd的变量。 Azure管道中有no such predefined variable

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

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

请使用Azure Pipelines variables之一。

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

$(Build.SourcesDirectory):/src

或映射源和二进制文件:

 $(Build.SourcesDirectory):/src
 $(Build.BinariesDirectory):/build