LoginSignup
1
0

docker compose run時にNameError: uninitialized constant Nokogiri::HTML4と遭遇した時の対処法

Last updated at Posted at 2024-03-10

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

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0