前提条件
以下のような環境です。
- Ruby のイメージは
circleci/ruby:3.0.2
- データベースは PostgreSQL
エラーメッセージ
以下のようなエラーメッセージが出ます。
#!/bin/bash -eo pipefail bundle exec rails db:create rails aborted! LoadError: libffi.so.6: cannot open shared object file: No such file or directory - /home/circleci/repo/vendor/bundle/ruby/3.0.0/gems/ffi-1.15.3/lib/ffi_c.so /home/circleci/repo/vendor/bundle/ruby/3.0.0/gems/bootsnap-1.8.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' ... ... ...
結論
libffi.so.6
が存在しないためエラーが出るので、(半ば強引に)シンボリックリンクを張ります*1。以下のコードを steps
に追加すればエラーが出なくなるはずです。
- run: command: | sudo ln -s /usr/lib/x86_64-linux-gnu/libffi.so.7.1.0 /usr/lib/x86_64-linux-gnu/libffi.so.6
参考(答え)
*1:libffi.so.7.1.0 を実態とします