前回でとりあえずElectronのことが少しは分かったので、今回は他のElectron製のアプリのコード読んでみることにした
選んだ理由としては、kitematicを使った時の最初の印象がすごいみたいな感じだったのと、単純にdockerとどう連携してるのかが気になったのでこれを読むことにした
読み方
とりあえず普段使ってるIntellij IDEAにimportして読んでる
今のところはビルドせずに単純に読むだけ、コードジャンプはしたいのでIntellij IDEAにお任せする、みたいな感じで読んでる
kitematicがlocalのdockerとどうやって連携しているか
まずlocalのdockerとどうやって連携しているのかが気になったので、そこから読み進めていってる
結論としては、kitematicはdockerのRemote APIを使って連携してるっぽい
https://github.com/docker/kitematic/blob/master/src/utils/DockerUtil.js
当初は普通に child_process.execSync
とかでdockerコマンド叩いてるのかなとか妄想してたら、そうだRemote APIあるやんってなった
もっと詳しく見ると、どうやらnpmモジュールのdockerodeを使ってるみたい
便利すぎるこれ…
といいつつ、dockerのデーモンの生存確認として、child_process.execSync
を使ってるみたいだった
https://github.com/docker/kitematic/blob/master/src/utils/DockerUtil.js#L120
さいごに
読むの楽しくなってきたからもう少し読んでみる
次はdockerやVirtualBoxなどの、localのインストールしておく必要がある依存しているもののインストールをどうやって行っているのかが知りたいのでそこら辺を見てみる