Я обнаружил интересную странность при попытке установить изображение докеров в окнах.
Я создал сценарий .sh
, который монтирует папку проекта для запуска образа среды разработки. Я хочу, чтобы каждый скрипт мог запускаться независимо от своей машины. Все, что он делает, - это докеры с текущей папкой проекта.
#!/usr/bin/env bash
docker run -it --rm -v D:\my\project\folder:/wkDir $IMAGE_TAG yarn dev
Все идет хорошо. Теперь план состоит в том, чтобы называть этот скрипт с npm
, поэтому мне бы хотелось, чтобы это работало относительно текущей папки. Попробуйте другую версию.
docker run -it --rm -v $PWD: /wkDir $IMAGE_TAG yarn dev
Сбой:
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from
daemon: Mount denied:
The source path "D:/my/project/folder;C"
doesn't exist and is not known to Docker.
Wat. Что ;C
и откуда оно взялось?
Поэтому я делаю echo $PWD
который дает мне /d/my/project/folder
.
Интересно, поэтому $PWD
разрешает правильный путь в формате пути linux, и кажется, что docker пытается перевести с этого на правильный путь к окну, за исключением этого ;C
который появляется из ниоткуда. И \
are /
...
Что именно здесь происходит?
Я получаю тот же результат в терминале VSCode git bash и powershell.
Обновление: я заметил, что запуск .sh
в терминале powershell VSCode открывает отдельное окно консоли cmd.exe
которое, похоже, запускает скрипт в git bash. Так что это может быть проблема git bash.