Windows에 도커 이미지를 마운트하려고 할 때 흥미로운 점을 발견했습니다.
.sh
개발자 환경 이미지를 실행하기 위해 프로젝트 폴더를 마운트 하는 스크립트를 만들었습니다 . 모든 개발자가 머신에 관계없이 실행할 수있는 하나의 스크립트를 원합니다. 그것이하는 일은 현재 프로젝트 폴더로 docker를 실행하는 것입니다.
#!/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.
와트. 무엇 ;C
이며 어디에서 왔습니까?
그래서 나는 echo $PWD
나를 준다 /d/my/project/folder
.
흥미롭게도 $PWD
Linux 경로 형식의 올바른 경로로 확인하고도 커가 해당 경로에서 올바른 Windows 경로로 변환하려는 것처럼 보입니다. 단, ;C
갑자기 나타나는 것이 있습니다. 그리고이 \
있습니다 /
...
여기서 정확히 무슨 일이 일어나고 있습니까?
VSCode의 터미널 git bash 및 powershell에서 동일한 결과를 얻습니다.
업데이트 : .sh
VSCode의 powershell 터미널에서을 cmd.exe
실행하면 git bash에서 스크립트를 실행하는 것처럼 보이는 별도의 콘솔 창이 열립니다 . 따라서 이것은 git bash 문제 일 수 있습니다.
"/${PWD}"