2015-11-06 2 views
5

При выполнении следующей команды из CoreOS VM он работает, как ожидалось:докер запустить -v не работает на Windows, с помощью докер-инструментов

docker run --rm -v $PWD:/data composer init

Что это будет сделать, это инициализировать файл composer.json в текущий рабочий каталог с использованием сопоставления тонер-докеров, как указано. Контейнер для докеров в основном содержит установленный php tool composer и запускает этот инструмент внутри папки/data контейнера. Используя сопоставление, он фактически применяет его к файлам на главной машине.

Однако при попытке запустить эту команду в Windows с помощью Docker Toolbox я получаю следующую ошибку.

$ docker run --rm -v $PWD:/data composer --help 
invalid value "C:\\Users\\Marco;C:\\Program Files\\Git\\data" for flag -v: bad mount mode specified : \Program Files\Git\data 
See 'C:\ProgramData\Chocolatey\lib\docker\bin\docker.exe run --help'. 

Что я заметил здесь, хотя я в git-bash при выполнении команды все еще использует пути Windows. Итак, я попробовал следующее (объемный с котировками):

$ "docker run --rm -v $PWD:/data composer --help" 
bash: docker run --rm -v /c/Users/Marco:/data composer --help: No such file or directory 

Теперь он не может найти каталог.

Я также пробовал без переменной $ PWD, но это не имеет значения.

Любые идеи, как сделать эту работу на Windows?

+0

Моя точка была: не используйте git bash. – VonC

ответ

4

Это должно работать: $ docker run --rm -v //c/Users/Marco:/data composer --help

+0

Отлично, это работает! Но почему? Для меня поведение изменилось после обновления Docker 1.8.2 до 1.9.1. В 1.8.2 синтаксис/c/Users ... работал отлично. – AronVanAmmers

0

Попробуйте MSYS_NO_PATHCONV=1 docker run ...

Gitbash пытается преобразовать путь для команд других окон.