くりにっき

フルスタックキュアエンジニアです

【追記あり】Docker Hubのrubyイメージで急にbundle installできなくなった時の対応

tl;dr;

export BUNDLE_PATH__SYSTEM=false をつける

あらすじ

会社で 今日のアニメボット を動かしているんですが、7/11夕方までは動いていたのに7/12分から急に動かなくなる現象になりました

エラー内容

+ bundle install --jobs=4 --retry=3 --path=vendor/bundle --gemfile=Gemfile --clean --without development
Using a custom path while using system gems is unsupported.

path:
Set for your local app (/usr/local/bundle/config): "vendor/bundle"

path.system:
Set via BUNDLE_PATH__SYSTEM: true

disable_shared_gems:
You have not configured a value for `disable_shared_gems`

コードの変更点は無いのでDocker Hubのイメージ( https://hub.docker.com/_/ruby/ruby:2.6-slim )に変更があったことはすぐに分かりました。

修正方法

環境変数

export BUNDLE_PATH__SYSTEM=false

をつければbundle installできるようになりました

CircleCIの場合

.circleci/config.yml に下記を追記

environment:
  BUNDLE_PATH__SYSTEM: "false"

GitLab CIの場合

.gitlab-ci.yml に下記を追記

variables:
  BUNDLE_PATH__SYSTEM: "false"

対応PR

github.com

追記:2019/7/13

BUNDLE_PATH__SYSTEM=true するやつがrevertされたので新しくimageをpullし直せば大丈夫そうに見える。(まあCIサーバだと自分でコントロールできないので BUNDLE_PATH__SYSTEM=false 固定でいいかもしれないけど)

github.com