LoginSignup
0
1

More than 3 years have passed since last update.

DockerComposeでWSLからdockerを使用するときのVolumeについて

Posted at

WSLにdockerをインストール

この記事ではDocker for Windowsをインストールし、Hyper-V上で
Dockerが起動することを前提としています。

WSL2の場合は、上記のインストールがいらないそうですが、
まだ、Insider Previewでしか使用できないようなので、
Docker for Windowsのインストールを前提とし、
expose deamon on~~のチェックを入れてDockerが起動していることを前提にしています。

image.png

dockerをWSLにインストールする方法は
https://docs.docker.com/install/linux/docker-ce/ubuntu/
に記載している為、省略します。

だいたいこのあたりは他の方もブログがQittaに記載しているので、
すぐにインストールができると思います。

問題はVolumeの設定

まず最初にdocker-compose.ymlやDockerfile
dockerにマウントするソースなどは
/home/{{username}}
のフォルダではなく、
/c/Users/{{username}}
などのWindows上のフォルダに保存しましょう。

※注意
通常ならWindowsのCドライブに格納したファイルは/mnt/c/・・・・
となるのですが、

WSLで/etc/wsl.confを新規作成(編集)し、以下の内容を追記します。

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

そうすると、/mnt/c/・・・・・ではなく/c/・・・・となります。
この設定と、/c/Users/{{username}}などのWindows上のフォルダに保存することによって
docker-compose.ymlに記載した
Volumeを相対パスにすることが可能です。

docker-compose.ymlやDockerfileをソースと一緒に
gitで管理している場合は、基本で記載されていると思いので、この点を知っておくと便利です。

なぜWSLからDockerを使うのか?

答えは、EDIがVScodeだから!!

最近のVSCodeにはRemote-WSLという機能があるのはご存知ですか?

RailsやPHPなどの開発の際、VScodeの機能を十分に活かそうとすると

  • PHPやRubyなどをWindows上にインストールが必要
  • ファイルを新規作成すると、改行コードがCRLF
  • gitでcore.autocrlf=falseにする必要がある

開発環境Windows⇔実行環境Linux間の弊害が発生します。
PHPやRubyなどをWindows上にインストールが必要は
結局WSL上にインストールが必要にはなりますが、
windowsとは違いバージョンの切り替えも容易ににできるのと、
コマンドベースでインストールもできるため、開発環境手順書を作らずとも
shellを容易しておけば、新しく開発者が増えた場合も容易に開発環境構築ができます。

0
1
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
0
1