CI 用 Docker image の自動ビルドを設定する
iCARE ではローカルの開発環境には Docker を活用しつつ、本番環境はコンテナを使わない ec2 インスタンスで運用しています
Rails のバージョンアップに向けた作業中に、こちらの開発用 Docker イメージのビルドがされないということで調査をしました
開発環境を整備したタイミングでは Docker Hub の自動ビルドが無料プランでもできていたのが有料になってしまったのが原因だったようです。運用ルールも明確ではなかったので、有料プランへの以降とビルドルールの設定を行い、ワークフローと一緒に現在の SRE チームへの引き継ぎました
設定はこのような感じで、 dev/* というブランチをレポジトリに push したら *-dev というイメージを作成。 master ブランチは常に latest をビルドし、リリースタグを打つことで名前付きのイメージが作成されるので利用側はこれを利用する想定です
現時点ではローカルの開発環境と CI のみを Docker イメージで運用しています。Ruby on Rails で作られているためイメージサイズが大きいという問題がありますが、その辺りのスリム化も行い、今後はアプリケーションを含んだイメージを自動ビルドにすることで、開発環境の改善やいずれは本番環境でのコンテナ活用なども視野に入れたいと思っています
この記事は iCARE の技術顧問がどんな事をやっているか - 2021アドベントカレンダー の16日目の記事です