CircleCI の Pre-Build Docker Images の更新で Job が失敗するようになったので対応した
要約
Job が落ちる原因
circleci/ruby
Image が更新され Debian が stretch(v9) -> buster(v10) になったから
対処法
stretch を明示的に指定する
状況
Rails アプリケーションの CircleCI Job が昨日から突然失敗するようになりました。
使用していた Docker Image
# .circleci/config.yml docker: - image: circleci/ruby:2.5.5-node
エラー文
bundle exec rails db:create
が失敗し
rails aborted! LoadError: libmariadbclient.so.18: cannot open shared object file: No such file or directory
というエラーを吐いていました。
原因
先日 Debian 10 buster がリリースされたことに伴い、 circleci/ruby Image のデフォルトイメージ(?)が Debian 10 buster based になりました。
それにより apt install MariaDB-client
などが失敗し、結果的に libmariadbclient.so.18: cannot open shared object file: No such file or directory
というエラーが出るようです。
解決
(やや対症療法的ですが) Debian 9 stretch based なイメージを指定することで解決しました。
# .circleci/config.yml docker: # - image: circleci/ruby:2.5.5-node - image: circleci/ruby:2.5.5-stretch-node