Задача Docker в Devops для Azure не принимает переменную $ (pwd) в качестве переменной - PullRequest
0 голосов
/ 11 января 2019

Я пытался выполнить команду docker через задачу docker в devops Azure с помощью задачи build in 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.

Я попытался дать ту же команду запуска docker с тем же значением -v на моем локальном компьютере, и это прекрасно работает. Итак, я думаю, что это проблема Devure в Azure или значение, которое я забыл дать

Мой хост-агент - Ubuntu16. И задача сборки выглядит следующим образом enter image description here enter image description here

1 Ответ

0 голосов
/ 11 января 2019

Вы пытаетесь сослаться на переменную с именем pwd. В конвейерах Azure нет такой предопределенной переменной .

Вы упоминаете, что это работает на вашем локальном компьютере, но это не потому, что определена переменная pwd. (На самом деле, в вашей среде, вероятно, , а не pwd переменная окружения.) Это потому, что $(pwd) - это подстановка команд POSIX . На самом деле выполняет команду pwd.

Этот синтаксис оболочки POSIX не будет работать в конфигурации конвейеров Azure.

Вместо этого используйте одну из переменных конвейера Azure .

Например, если вы хотите отобразить каталог источников, вы можете установить в поле томов:

$(Build.SourcesDirectory):/src

Или источник карты и двоичные файлы:

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