※この記事を書いているのはフロントエンドを専門にしているので、バックエンド側の「いろは」は何も知りません。
フロント専がDocker
とはいったいと頭を抱えつつ、ざっくり入門する記事になります。
Dockerに入門、重い腰を上げる理由
実はというほどでもないが、nestJs
もコマンド1つでローカルホストを立ち上げることができるし、公式ドキュメントもローカルホストで書かれている。つまりあえてDocker
に入門する必要もないのだが、開発の参考にする記事を調べると、ことごとくDocker
で作業しているし、どうやらデプロイもDocker
のファイルを使って行っているようである。であれば、こちらも開発環境を合わせた方が開発がよっぽど楽になるので、この機会に入門しちゃうことにした。
なぜDockerを使うのか
と聞くと、「環境を揃えたい」という回答が良く聞こえてくるが、いまいちピンと来てない。そもそもフロントエンドであればPackage.json
で環境を揃えられるんじゃないのと言いたくなる。けどそれを言うと無知と思われるのも嫌なので、調べてみることにした。
NodeとOSを揃えられる
Nodeのバージョンを共有できる
調べてみると、Node
のバージョンアップを揃えられるというのが強みらしい。
これは確かに納得できる。
今までのプロジェクトでもNode
のバージョンが揃ってなくて苦労したことは良くある。Package.json
の方で依存ライブラリを管理してもその大本であるNode
のバージョンが管理されていなければ意味がない。まあ、Volta
を使ってPackage.json
にNode
のバージョンをピン止めすれば同じと思ったけど、そもそも皆が皆Node
のパッケージマネージャにVolta
を使っているわけじゃないので、そううまくはいかない。ただそれで言うとDocker
もそうなので、納得できるけどこのメリットを享受するためにDocker
を入れようとは正直思わない。
Volta - The Hassle-Free JavaScript Tool Manager
OSを揃えられる
どうやらイメージという設定ファイルでOS
を指定できるらしい。
つまり今までOS
ごとに環境構築で苦労することがあったが、それがなくなるらしい。というのもDocker
を使うことで、使っているOS
に環境構築するというわけではなく、Docker
上のコンテナに環境を構築するので、OS
に依存しなくなるということらしい。
実際に使うことでメリットを享受するしかない
なんか色々な記事を見てみたが、メリットと感じるのは上に上げた2つだけだった。導入手順を考えるとあえて使う気にもならないが、社会的にDocker
を使おう的な風潮を感じるので、今回の個人開発で導入してみて、所感を述べようと思う。使わずに批判するのは一番よくないって誰かが言っていた気がするし。 あとざっと調べてみた感じ、
- デプロイが簡単にできる?
- 環境をそのまま渡すことができるので、譲渡しやすい?
みたいなメリットがあるのかなと感じた。 とりあえず、物は試しで手を動かして入門してみる。