Shellでのビルドを行うフロントエンドの開発で、Dockerにて開発環境を構築している理由を、
自分なりにまとめてみたいと思います。
Docker を使う場合、何が嬉しいか
Dockerを使う場合にメリットがいくつかあります。
開発環境構築ドキュメントが不要になる
動作しているわけですから、Dockerfile に書いてあることが完全な正解になります。
動作する開発環境構築のためのコードがそこに書いてあり、なおかつ動作が保証されている。
これはかなりの安心感になるのではないでしょうか。
開発環境構築コード自体が gitリポジトリ に入る
別で書いたドキュメントに入るのではなく、開発環境構築自体が gitリポジトリに入っているようになります。
問題が起きて修正する際も履歴が残り、なおかつコードと同期されています。
また、gitリポジトリを見つけているのに、ドキュメントの場所が迷子ってことにもなりません。
ホストOSに影響せずビルドすることができる。
複数の言語を扱ったりバージョンを扱ったりする場合があると思います。
その際に、 nvm や rbenv など環境切り替えパッケージを利用する必要がなくなり、
完全な開発環境になります。
ビルドする際は、
docker exec {コンテナ名} bash -c "cd /opt/src && npm run build"
のようにホストOSからコマンドを実行します。
逆に困るところはあるか
ホストOSにて、普通に動かすよりも、動作が重い可能性があります。
※数値では未検証。感覚知です。
なので、もし動作が重く困る場合は、個人ごとに独自で、ホストOSに環境を構築してもいいと思います。
ただ、Dockerに開発環境構築するコードは維持します。
なぜかというと、それは開発環境構築のドキュメント代わりも兼ねているからです。
新規で入ってきたエンジニアはまず、Dockerで動かしてみる。
しばらく経って、速度を求めだしたらDockerfileを参照しながらホストOSに構築しても良い。
そのような運用が良いかと思います。
まとめ
最近はこの方法でフロントエンド環境を構築しています。
git clone してきて、すぐにビルドができるところは楽でいいです。