まず前置きとして私は使い慣れている Windows 環境が好きで、Mac を試してみたものの馴染めずに戻ってきました。しかし Web 開発、それも主に Ruby と Rails を使って開発しているため Linux 環境は欠かせません。そのため常に仮想環境が必要となりますが、エディタはやはり Windows 上で、それも IntelliJ IDEA を使いたいという思いがあります。
そんな私の最近ローカル仮想環境は Docker で構築しています。ただ、Docker を上手に使っているかと聞かれるとそんなことはなくて、普通の VM のように SSH だの DB だのあれこれ一つのコンテナに詰め込んでしまっているので、むしろ Docker 使いの方からは怒られるような使い方をしてしまっている気がします(汗
ただし最近この環境の重さ・遅さに辟易としてきました。何が重いかというと、Docker でホストのフォルダをマウントしているのですが、その読み込みがとてつもなく遅いときがあるのです。ファイル数も影響しているのか、以前は気にならなかったのですが、最近悪化している気がしていました。
これはどうも Docker というよりもそれを動かしている VirtualBox の shared folder 機能に問題があるみたいです。確かに以前 VirtualBox 単体で使用していた際も重いと感じたことはありました。またこれはホスト OS が Windows か Mac かという点は関係なく重いそうです。それと Docker のフォーラムで結構長いやりとりがされていますが、同じ VM というジャンルでも VMware でもそういう現象が報告されています(人によって程度に違いはあるみたいですが)。
そんな重さに嫌気が差したため、Docker のマウントを捨てて以前も使っていた SSHFS に変更してみたところ、すこぶる快適になりましたヽ(´ー`)ノ いやぁ、あんなに読み込みが遅かったのが嘘みたいにサクサク動いてくれます。
ただこの SSHFS が万能かというと、そうとは言い切れません。ソースコードは Git で管理しているのですが、ホスト側から管理できなくなりました。正確に書くと、以前はホスト OS である Windows の環境下に SourceTree を使って管理していたのですが、今回 Docker 下にファイルを置くことになったため、どうも不具合が発生して取り扱えません。
IntelliJ IDEA にも Git 機能はあるのですが、これも正常に動作しません。むしろ index.lock ファイルを生成したままでロックされてしまうため(SourceTree でも同じ現象が発生しました)、使わないように設定を変更した方が無難です。というわけでソースコードの管理は Docker 上でコンソールで Git コマンドを叩いて対応しています。私は以前もコンソールから叩いていたので思い出せば楽勝でした、助かった(´ー`;
という感じに完璧ではないですが、私はこの方法で最近は開発しています。ありがたい事に Windows で Docker を使うためのwin-sshfsとdokan(dokany)の開発が再開(?)されているため、Win10(64bit)環境でもきちんと動いてくれています。Docker を使う人だけじゃなく、VirtualBox や VMware 等を使っていて、共有フォルダの挙動の重さに困っている人も試してみると良いかもしれません。