特定のバージョンとプラットフォームで gem を検索するにはどうすればよいですか
概要
Ruby:2.5.1 x86_64 Docker コンテナーで、sorbet-static:0.5.10346-x86_64-linux が Bundle install と gem install sorbet-static:0.5.10346 –platform x86_64-linux のどちらでもインストールできないという問題が発生しました。
そこで、Docker コンテナー内の特定のバージョンとプラットフォームで sorbet-static gem の可用性を確認したいと考えています。
問題の部分
FROM ruby:2.5.1
# To be able to install old packages from archive.
ADD ./docker/web/sources.list /etc/apt/sources.list
RUN apt-get update -qq && apt-get install -y build-essential nodejs && rm -rf /var/lib/apt/lists/*
ENV APP_PATH /opt/app
WORKDIR $APP_PATH
ADD Gemfile $APP_PATH
ADD Gemfile.lock $APP_PATH
ADD gems $APP_PATH/gems
RUN bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3
Fetching gem metadata from https://rubygems.org/........
Could not find sorbet-static-0.5.10346-x86_64-linux in any of the sources
以下のコマンドを試しましたが、結果は役に立ちませんでした。
最新バージョンを入手しました。
gem search sorbet-static
バージョンとプラットフォームの組み合わせが多すぎる結果が得られました。
gem search sorbet-static --all
解決策
🗎 Dockerfile
FROM ruby:2.5.1
RUN echo "deb http://archive.debian.org/debian/ stretch main contrib non-free" > /etc/apt/sources.list && \
echo "deb-src http://archive.debian.org/debian/ stretch main contrib non-free" >> /etc/apt/sources.list
RUN apt-get update -qq && \
apt-get install -y build-essential nodejs && \
rm -rf /var/lib/apt/lists/*
ADD Gemfile .
RUN bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3
🗎 ジェムファイル
source 'https://rubygems.org'
gem 'sorbet-static', '0.5.10346'
以下のスクリーンショットは、必要なバージョンがインストールされていることを確認します。