LoginSignup
4
4

More than 3 years have passed since last update.

WSL(Windows Service for Linux)上のdocker-composeで相対パスでvolumeをマウントする

Posted at

なぜこの記事を書いたか

いつもはmacOS上でdocker-composeを使って色々と開発環境を構築しているんですが、Windowsユーザーの方とdocker-compose.ymlを共有する必要があり、そこで「WSL上のdocker-composeではvolumeのマウントに相対パスが使えない」問題に引っかかりました。
良く見かける記事では「絶対パスにしましょう」とか「環境依存にならないように$ROOT_PATHなどを使って絶対パスを書きましょう」と書かれているのですが、絶対パスを使わなくても良い方法を検索で見つけたため、そちらを共有しようと考えました。

TL;DR

WSL上の/etc/wsl.confを新規で作成し、以下の状態にします。

/etc/wsl.conf
[automount]
root = /
options = "metadata"

ファイルを保存したら、Windowsを再起動すると、WSL上のdocker-composeで相対パスが使えるようになります。

検索したページ

いくつかキーワードを設定し、たどり着いたのが以下のページ。

「WSLとDocker for WindowsでGROWIを動かすとvolumesでつまずく」
https://blog.mahoroi.com/posts/2019/04/growi-wsl-docker-for-windows/

こちらに上記の内容が書かれていて「おお〜っ!!」となりました。

Windowsを再起動すると何が変わるか?

上記ページにも書かれていますが、簡単に言うと/mnt/c/foobar/といった形だったWSLのディレクトリ構造が、/c/foobar/に変わります。NTFSマウントのROOTが/mnt/から/に変わったわけですね。

では何故これで相対パスが使えるようになるのか?

実は良く分かって無い状態で使ってます。何か副作用が無ければ良いのですが、、、(そんな無責任な)

最後に

ひとまずmacOSとWindowsで同じdocker-compose.ymlファイルが使えるようになりました。しばらく使って問題が出るようであれば、こちらに追記させて頂きます。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4