Development拡張が登場して騒がれて少し経ちました。Desktopを使っていますが、PCゲーマーであるのでWindowsを手放すことは出来ません。ゲームを実行するという関係上Windowsを仮想化して使うことも考えにくいです。2台(もしくはLinuxを仮想化)で開発することが当たり前になっていました。ちなみにMacも長く使ってましたが最近の開発者の方を見てないなという姿勢を見てMacは完全に卒業しました。ゲームというWindowsのような維持理由があるわけでもなく、開発用として持っているのにネイティブDockerが使えないことも大きい。なんにしろいくつも環境を維持するのは面倒です。できればWindowsだけで開発できれば楽です。現在のモダンな開発環境の中心にはDocker、もしくはコンテナがあります。エディタやIDEがローカルインタプリタやコンパイラを必要とする例も多くあり、結局ローカルにもコンテナ内部と同じような開発環境を作っている方は多いと思います。Appサーバーに相当する部分だけdocker-composeから外したりとかする人も多いですよね。Windowsでこのように一部をローカルで賄おうとするとWindowsだということがだいぶつらくなります。貧弱なCUI環境とか、Unix系ツールがないこととか、パスの表し方とか、そもそもWindowsで動くことを想定しないライブラリの多さとか...だからLinuxを開発に使うわけです。あってことで開発環境はコンテナ内部に全て置き、XでコンテナからGUI飛ばしてみたりとかするとかするわけですが、実際にやってみるとこれがまた使いにくてたまらない。Developmentです。先のXでなんとかしようとしたときと発想は近いですが圧倒的に使いやすいですね。往時のCEOがLinuxはガンとまで言ったMicrosoftがCEOも変わり積極的にOSSを取り込もうとする姿勢になっているはとても良いです。登場からしばらく経ちましたが「使ってみた」の記事はたくさんあれど、実用している人の記事は全然ありません。そこで複数のプロジェクトで実践してみた設定例を公開してみようかと思いました。github.comWindows側からはリポジトリに含められないファイルを最初にコピーするだけで、ソースコードもファイルシステム上の都合からパーミッションやらシンボリックリンクやら問題があるのでWindowsからマウントしません。buildの段階でできる限り構築してしまいたかったためです。この設定で立ち上げたコンテナに直接アタッチして開発するイメージです。Imageでは直接コンテナ内でデイリーユースするための想定はしていないのでシェルや周辺ツールを整えて使います。日頃からそのへん自動化している皆さんならセットアップは苦にならないでしょう。