#WSLにdockerをインストール
この記事ではDocker for Windowsをインストールし、Hyper-V上で
Dockerが起動することを前提としています。
WSL2の場合は、上記のインストールがいらないそうですが、
まだ、Insider Previewでしか使用できないようなので、
Docker for Windowsのインストールを前提とし、
expose deamon on~~のチェックを入れてDockerが起動していることを前提にしています。
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を新規作成(編集)し、以下の内容を追記します。
[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を容易しておけば、新しく開発者が増えた場合も容易に開発環境構築ができます。