Docker Desktop for Windows from Msys2

Windows를 사용하여 Msys 2 bash에서 Docker Desktop을 시작하면
로컬 파일 시스템을 음량으로만 설치하면 MingW의 POSIX path conversion에 걸려서 죽는다(순조롭지 않다).지킬의 예를 들면 이런 느낌이야.
$ docker run --rm -v $(pwd):/srv/jekyll jekyll/jekyll:pages jekyll build
$(pwd)/home/foobar/path/to/current_work_dir까지 전개되었지만 POSIX path conversionC:\msys64\home\foobar\...처럼 변환되었습니다.또한 : 뒤쪽을 낀/srv/jekyllC:\msys64\srv\jekyll 근처에서 펼쳐져 docker(용기) 측면에서 보면 어떤 상태인지 알 수 있다.
회피 방법은 앞부분$(cygpath -w $(pwd))이다.cygpath -w/home/foobar/...C:\home\foobar\... 느낌의 Windows 경로 형식으로 변환합니다.이것은 POSIX path conversion을 사용하지 않고 메시지를 구동하는 매개 변수를 사용합니다.
Arguments starting with a drive specifier (eg C:) are considered to be Windows paths and are not converted
그리고 지령을 집행하는 전체적인 느낌을 나타낸다.
$ docker run --rm -v ”$(cygpath -w $(pwd)):/srv/jekyll" jekyll/jekyll:pages jekyll build
이것만 있으면 리눅스가 움직일 수 없기 때문에 아래 스크립트를 쓰는 것이 비교적 쉽다.
#!/bin/bash

set -eu

dir="$(pwd)"

case $(uname -s) in
  MSYS*) dir=$(cygpath -w $dir) ;;
esac

docker run --rm -it -v "${dir}:/srv/jekyll" jekyll/jekyll:pages "$@"

좋은 웹페이지 즐겨찾기