【问题标题】:Docker task in Azure devops won't accept "$(pwd)' as variableAzure devops 中的 Docker 任务不接受“$(pwd)”作为变量
【发布时间】:2019-01-11 09:37:02
【问题描述】:

我尝试通过 Azure devops 中的 docker 任务和 build in 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 devops 问题或我忘记提供的值

我的主机代理是 ubuntu16 构建任务如下

【问题讨论】:

    标签: azure docker azure-devops


    【解决方案1】:

    您正在尝试引用名为 pwd 的变量。 Azure Pipelines 中有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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多