MSYS2 で Docker ライフ

最近、Cygwin with aptcyg環境がごちゃごちゃしてきたので、見直しをはじめました。
WSLで環境構築を試みましたが、いまいち、Windows環境と連携取りにくく、これだと仮想環境と何も変わらないので却下しました。

色々検討してみた結果、MSYS2 で pacman を使うのがどうも便利そう…ということで、環境を整備してみました。

MSYS2 自体は chocolatey で入れて、一通り欲しいもはpacman で入れました。
そして、本題の docker …は、流石にMSYSではインストール出来ないので、Docker for Windows でインストールした docker を使用します。

TTY が必要だったり、パスの表記がMSYS2とWindowsで違うので、この辺を解決していきます。
まず、TTYが必要なので、

pacman -S winpty

でwinpty を入れて、.bashrc や .zshrc でパスとエイリアスを設定します。

export PATH=$PATH:/c/Program\ Files/Docker/Docker/resources/bin
alias docker='winpty docker'
alias docker-compose='winpty docker-compose'

これで、いい感じに docker が使えるようになりました☆

ただ、

docker -v `pwd`:/mnt -it alpine sh

こういうコマンドを書くと、うまく動きません…。実行しているのは Windowsのコマンドで、Windowsのパスを期待するのに、MSYSのパスが返るため…。

というわけで、cygpath に 絶対パス(-a)と、Windowsのパスを取得(-d)を与えて…

docker run -v `cygpath -ad .`:/mnt -it alpine sh

これで、いい感じにカレントを /mnt にマウントできました。
docker-compose で カレントをマウントするのは、そのままでも良い感じに動くようです。

 

 

コメント

タイトルとURLをコピーしました