はじめに
ついこないだPyCon行って、Dev Containersの話を聞いてきました。
すごく良さそうだったんで、今後社内でも展開していきたいと考え
まずはその入り口として調べたことに私なりの補足をして書き残しておきたいと思います。
まだ使い始めなのもあって、具体的な使いかたには触れません。
なんとなく「こんなものだ」を感じ取っていただくためのお話になっておりますのでご了承ください。
こんな事がありそうな組織ほどDev Containersがマッチしそう
弊社のエンジニアは会社支給のPCをある程度選べるようになっていて多数のMac派、少数のWindows派となっています。
以下はフィクションですが、こんなこと起きてませんか?
Aさん(Mac派) < Bさんの開発環境構築手伝ってるけどWindowsだとすごい大変でさぁ。
もうWindowsは世の中から無くして欲しいんだよね。
Bさん(Win派) < は?MacなんてARMアーキテクチャとかいうスマホ用CPUで動くモバイルもどきっしょ?
Aさん(Mac派) < CPUの話にすり替えても勝ち目がない事わかってないなぁ。
Appleシリコンは旧世代のx64アーキテクチャCPUを
コスパやエネルギー効率面で周回遅れにしてっから。
旧世代のCPU載ってるPCはもう旧世代のPCだよね。
Windows PCって歯車でうごいてそう。プー。クスクス。
Bさん(Win派) < ぐぬぬ。。。(エネルギー効率って!MacBookAirの発熱問題とか起きてんじゃんか!!)
神 < 開発環境構築の差を切っ掛けにOS戦争をするのは おやめなさい。"Dev Containers"を使うのです。
※ もう一度書きますが、上記の言い争いは完全なるフィクションです。私が脳内で何も事実に基づかないノリだけで思いついた会話を書いてます。『どうやら環境構築がめんどうでOS戦争に発展した』とだけ感じ取っていただければ幸いです。私はMacも使いますがWindows派で会社支給PCもWindowsです。(神が仲裁に入る事なんてありえないんで、どう考えてもフィクションです。)
神の思し召し通りにDev Containersを使うと開発環境構築の手順もOSによる差も格段に減る雰囲気があるのがなんとなく感じ取れましたね。
これまでの開発
以下は、私が関わるプロジェクトの開発環境 2大パターン。
①、②どちらもですがエディタ/IDEが実行環境を参照して構文チェックをしています。
②に関しては実行環境がContainerにあるので、エディタ/IDEの為にLocal OSにも実行環境を用意することになってしまっています。
①Local OSにコンパイラや実行環境などが全てあるパターン
②コンテナ上にコンパイラや実行環境などがあるが、エディタがコンパイラなどの実行環境を参照しているので、仕方がなく一通りの実行環境をLocal OSにも用意しているパターン
Dev Containersを使ってからの開発
Local OSにはVS Code(Dev Containersの拡張機能入り)とソースコードがあれば、Dockerのコンテナ内に展開された実行環境類を使って開発及びアプリの起動までできてしまうようになります。
また、このコンテナImageを共有することで誰もがLocal OSの縛りが無く同じ開発環境となり、一度作ったImageは他社に共有して使えるので、メンバーが増えるたびに再構築することもなくなります。
※ しれっとinteliJの記述を消したのは、inteliJでのDev Containersの詳しい資料を見つけられなかったので、どんな状況かわからずウソや勘違いを減らすために消しました。
参考サイト:
https://code.visualstudio.com/docs/devcontainers/containers
最後に
「はじめに」でも触れましたが、まだ使い始めなのもあって自分なりの考えが纏まっているところまでに内容をとどめました。
これからもっとDev Containersの知識を増やしていきたいと思います。
知識も深めて気力が湧いてきたら、この続き(AさんとBさんのケンカの行く末も含めて)書いていきたいと思います。