0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【M3Mac】docker componse up で nokogiri が cannot load such file -- nokogiri/nokogiri (LoadError) になる

Last updated at Posted at 2024-12-09

はじめに

記事を見て下さりありがとうございます。
@hayatohanaoka と申します。
今回は仕事で扱っている rais アプリケーションをM3Mac環境で起動しようとしたら nokogiri でエラーになったので、その解消法を記事にします。

起こったこと

M3Mac の環境で rails のアプリケーションを docker componse up したら cannot load such file -- nokogiri/nokogiri (LoadError) になった

※ 先輩のubuntu環境ではうまくいっている様子だったので、Mac特有の問題かもしれません

使用していた Dockerfile は以下です。

FROM ruby:3.2.3-alpine
ENV LANG ja_JP.UTF-8
RUN apk update && \
  apk upgrade && \
  apk add --no-cache bash build-base git libxml2-dev \
  libxslt-dev postgresql-dev linux-headers openssh ruby-dev \
  ruby-json tzdata yaml yaml-dev zlib-dev

# Bundler cache
WORKDIR /tmp
RUN gem install bundler
ADD ./Gemfile Gemfile
ADD ./Gemfile.lock Gemfile.lock
RUN bundle install --jobs 10 --retry 3

WORKDIR /app

こいつを docker compose up してみると...

> docker compose up

〜中略〜

app-1            | => Booting Puma
app-1            | => Rails 6.1.3.2 application starting in development 
app-1            | => Run `bin/rails server --help` for more startup options
app-1            | Exiting
app-1            | /usr/local/bundle/gems/activesupport-6.1.3.2/lib/active_support/dependencies.rb:332:in `require': cannot load such file -- nokogiri/nokogiri (LoadError)

cannot load such file -- nokogiri/nokogiri (LoadError) になりました。

原因

alpineイメージを使用していたため、glibc に依存するソースでエラーになっていた

どうやら alpine イメージは必要最低限のモノだけを用意したイメージなので、一部ライブラリなどで問題が起こる様子。
...全く知らなかった😇😇😇

解決法

以下をdockerfileに追加。

apk add gcompat

以下コマンドを実行

docker compose build --no-cache
docker compose up

最後に

みやみにalpineを使うと、思わぬところでエラーになるので気をつけよう。
もしエラーになっても上記手順で解決できるが、別のより良い手法を使う方が良さそうな気がする...。

0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?