💡

【🔴エラー対応】CircleCiでの自動テスト時に、「Rails」+「Docker」環境でエラーになる【自動デプロイ】

2022/08/12に公開

✅当方の環境

  • 開発環境 : Docker
  • 本番環境 : heroku
  • Gemfileの内容
    • ruby 2.7.5
    • rails 6.1.5
    • webpacker 5.0

✅関連キーワード

  • 「Docker」+「Rails」+「CircleCi」の環境
  • CircleCiにおける自動テスト時にエラー(ビルド時はエラーが出ていない)
  • 「bundle exec rails db:migrate」でエラーが発生している模様
  • Run bundle install to install missing gems.
  • bundle installされない

✅エラー内容

  • CircleCiのログの内容※一部抜粋
#!/bin/bash -eo pipefail
bundle exec rails db:migrate
Could not find rake-13.0.6 in any of the sources
Run `bundle install` to install missing gems.

Exited with code exit status 1
CircleCI received exit code 1

✅エラー箇所

  • 「.circleci\config.yml」に記載している「test」のrunコマンドの実行箇所
.circleci\config.yml
<中略>
      - run:
          name: Database setup
          command: bundle exec rails db:migrate
<中略>

✅エラー原因

  • どうやら、CircleCI側で用意しているDockerのRUBYのイメージが、2021/12/31以降から新しいものに変更されたたため。
  • 「.circleci\config.yml」に記載しているDockerのイメージは、古いのもらしい(Rubyのバージョンとは無関係)

✅エラー対応

  • 「.circleci\config.yml」に記載しているDockerのイメージを、2021/12/31以降の新しいイメージに修正する
<中略>
  test:
    docker:
-      - image: circleci/ruby:2.7 #変更前
+      - image: cimg/ruby:2.7     #変更後
       - image: circleci/mysql:5.5
<中略>

✅エラー参考資料

Discussion