がんばるぞいクラブの開発環境をDocker化した。

以下がんばるぞいクラブ の改善の続きです。

背景

がんばるぞいクラブの開発は Mac内にbrewRuby/Railsとnodejs、PostgreSQLを入れるオーソッドックスなやり方で行っていた。特にこれといった不満はなくこのままでよかったけれども、brew upgradeを実行した際にPostgreSQLが立ち上がらなくなってしまいうまく対処ができなかった。。そこで、開発環境のDocker化に重い腰を上げて取り掛かることにした。

Docker化にあたって事前にみた資料

あまりDockerに触ってなかったので、今回はDocker化に取り組む前に以下資料をみてDockerの学習をした。公式ページのTutorialがすごくわかりやすく、スムーズにすすめられたこと、Docker for Macを入れるだけでDockerのセットアップ自体は完了するのはよかった。

やったこと

コンテナの構成はdb(PostgreSQL)とweb(Rails)、node(webpack)の3つで、dbは既存イメージをそのまま使い、webとnodeはRubyのイメージを使って変更を加えている。webではRailsサーバの起動、nodeはWebpack(https://github.com/rails/webpacker)の起動をしていて、特段変わったことはしていないと思う。 bundleをキャッシュさせるためにGemfileのみをADDすること、Webpacker用のコンテナを立ち上げたりるべきかどうかを悩んだかも。Dockerfileとdocker-compose.ymlは公開するのでこうできるとありがたいです🙏

gistae1c403a80d0696a66fad484c2cff58d

おわりに

いざやってみると開発環境のDocker化はわりとすんなりとできてしまった。がんばるぞいクラブの開発は一人で行っているので、開発環境のポータビリティ性の向上といったメリットはないが、Mac内の環境の依存がなくなっただけでも導入の価値はあったのもかなと思っている。ということで、開発環境のDocker化はあまり工数かけずにできたのでおすすめです🙏

REF

今回以下の記事を参考にさせていただきました。特にSoftware Design 2017年02月号のDocker特集はこれまでDockerにあまり触ってなかった僕にはとてもわかりやすい記事でしたので、おすすめです。ありがとうございました!