DockerをローカルPC開発で使うメリットとは
概略
Dockerをローカル開発で利用するメリット
みんなDockerをローカル開発で使っているからDockerではなく、ローカル開発で使用するメリットを理解するための記事。
DockerをローカルPC開発で使うメリット
メリット1. ローカルPCの環境をきれいに保てる
コンテナごとに必要なAPIやライブラリを管理できるので、サービス開発が終わると同時並行している他の開発で必要なものに影響させないで、不要なものをまとめてローカルPC上から消せる。
例えば、
コンテナAはバス予約システム開発で必要となる機能
コンテナBはマンガ購読サービス開発で必要となる機能
だとする。
6月までは両方の開発を行っていたが、7月でバス予約システムの開発は終わったとする。
そうするとローカルPCからはコンテナAを削除すればバス予約システムで使っていたプログラムやライブラリやデータをローカルPCから削除できる。
他の継続している開発に影響させないで不要になったものを削除できるので、ローカルPCの環境をきれいに保てる。
メリット2. どのコマンドやライブラリを使用して開発を行っているのか明確にできる+競合を避けられる
もしDockerを使用していない場合、プロジェクトが増えれば触れるほどPCにインストールするライブラリも増えていく傾向に陥る。
そうするとこの開発では本当はライブラリ1が必要なのに、たまたま別のプロジェクトでローカルPCに入れていたので前のライブラリを使用して開発を行えてしまったということが生じる。
または、AプロジェクトではライブラリXのバージョン6を使用していたのに、BプロジェクトではライブラリXのバージョン7が必要になったが、バージョンアップするとプロジェクトAのプログラムに影響が出てしまうケースを防ぐことができる。
そのライブラリやコマンドがどのプロジェクトで必要なのか開発者本人が意識しないまま開発を進めていくと、検証環境にデプロイしたときにトラブルになったりする可能性がある。
Dockerを利用し、各プロジェクトごとにコンテナの区切りで必要なライブラリやコマンドを導入することで、1つ1つのプロジェクトで何が必要なのかを明確に管理ができる。
メリット3. 開発メンバーが複数いるときにローカル開発環境をメンバー間で簡単に再現できる
メンバーAが一度コンテナの環境を作成しDockerfile
やdocker-compose.yml
に定義すれば、他のメンバーはそのファイルをもとに自分のローカルPCでコンテナを立ち上げれば、簡単に環境を再現できる。
プログラミング言語のバージョン(Pythonのバージョンなど)やDatabaseのバージョンもほかのメンバーと同じバージョンで環境構築できるため、メンバー参画時の環境構築への負荷が下がる。
Discussion