Gemfile.lock の BUNDLED WITH
と Docker イメージ内の bundler バージョンに乖離があるとエラーになる。
次の通り対策ができる。
- イメージ内の gem をアップデート
gem update --system
- 任意のバージョンの bundler をインストール
gem install bundler -v <バージョン>
例:
Dockerfile
FROM ruby:2.6.2
ENV APP_HOME /app
WORKDIR $APP_HOME
COPY Gemfile $APP_HOME/Gemfile
COPY Gemfile.lock $APP_HOME/Gemfile.lock
ENV BUNDLER_VERSION 2.1.0
RUN gem update --system \
&& gem install bundler -v $BUNDLER_VERSION \
&& bundle install -j 4
COPY . $APP_HOME