我尝试通过内置dev任务在Azure devops中通过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.
我尝试在本地计算机中使用相同的-v值提供相同的docker run命令,这非常有效。所以我想这是Azure开发问题或我忘记给出的值
答案 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