Dockerを使ってRailsの環境構築を行なっている時に遭遇したエラーの解決方法を備忘録も兼ねてここに記します。
開発環境
M2チップ Mac Book Air
OS: MacOS Sonoma
Rails: 5.0.0.1
DB: MYSQL 5.7
Ruby: 2.4.6
※詳細は省きますが、Windows11の環境でも同様のエラーに遭遇しました。
同エラー遭遇時にPCを上記のMac Book Air に買い換えた為、Windows環境では解決まで の確認はできていませんが、恐らく解決できると思います。
実行したコマンドと遭遇したエラー
実行したコマンド
docker compose run web bundle exec rake db:create
遭遇したエラー
rake aborted!
NameError: uninitialized constant Nokogiri::HTML4
Did you mean? Nokogiri::HTML
エラー解決の為に行なったこと
1, Gemfileを編集して下記の行を追加する
gem 'loofah', '~> 2.19.0'
2,下記のコマンドを実行することでGemfile.lock上のloofahのバージョン指定を修正する
docker-compose run web bundle update loofah
bundle updateを行うとBundlerはGemfileを元にgemのインストールを行います。
その後、Gemfile.lockが更新されます。
3, buildを実行して更新された内容でDockerイメージを再構築してコンテナを改めて起動
docker compose build
docker compose up
参考にした記事
https://hackmd.io/@SKjw2RY-RNCUNSdJfEWPig/ByXXyQcEn
https://qiita.com/lasershow/items/1a048d03ddaaba98171e