Closed2

rails consoleがlibffi.so.7がないというエラーでコケる

miyatakamiyataka

自分のケースの場合

  • ruby2.7.5
  • rails6
  • alpine(バージョン指定なし)

でrails consoleがエラーになっていた
下記のようなエラー

2022-02-13T22:18:12.677+09:00	/usr/local/bundle/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require': Error loading shared library libffi.so.7: No such file or directory (needed by /usr/local/bundle/gems/ffi-1.15.5/lib/ffi_c.so) - /usr/local/bundle/gems/ffi-1.15.5/lib/ffi_c.so (LoadError)
2022-02-13T22:18:12.677+09:00	from /usr/local/bundle/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi'
2022-02-13T22:18:12.677+09:00	from /usr/local/bundle/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register'
2022-02-13T22:18:12.677+09:00	from /usr/local/bundle/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi'
2022-02-13T22:18:12.677+09:00	from /usr/local/bundle/gems/bootsnap-1.7.3/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require'

結論としては,以下のissueをみつけ,Dockerfileでalpine3.13以下を指定し直すことでfixできた.
ポイントとして,dockerマルチステージビルドを利用している場合,当然だが,ステージ分修正する必要がある.自分の場合は,これを忘れて二度修正リリースすることになってしまった.

https://github.com/docker-library/ruby/issues/351

このスクラップは2022/02/22にクローズされました