Table of Contents [expand]
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2024年06月28日(金)
Bundler の使用
Bundler をインストールするには、次を実行します。
コマンドの前には > が付いており、コマンドプロンプトで実行する必要があることを示しています。コマンドを実行するときは、> の文字をコピーしないでください。
> gem install bundler
Gemfile という名前のファイルをアプリのルートに作成します。このファイルでは、アプリを実行するために必要な gem を指定します。
source "https://rubygems.org"
gem 'sinatra', '4.0'
このファイルはアプリの一部であるため、Git リポジトリに追加します。また、.bundle ディレクトリを .gitignore ファイルに追加します。Gemfile を追加すると、他の開発者は簡単に各自の環境をアプリを実行できる状態に整えることができます。
> bundle install
このコマンドにより、Gemfile で指定されているすべての gem がアプリケーションで利用できることが保証されます。bundle install を実行すると Gemfile.lock も生成され、これを Git リポジトリに追加する必要があります。Gemfile.lock によって、Heroku にデプロイされている gem のバージョンが、使用中の開発用マシンにローカルでインストールされているバージョンと一致することが保証されます。
Gemfile.lock で 2.2 以前の Bundler のバージョンが指定されており、Gemfile.lock の PLATFORMS セクションに mswin や mingw などの Windows エントリが含まれている場合、Heroku は Gemfile.lock ファイルを無視します。Bundler 2.2 以降にアップグレードすることをお勧めします。
Bundler 2.2 以降での Windows サポート
Heroku は Windows で開発されたアプリケーションのデプロイをサポートしていますが、本番 Dyno は別のオペレーティングシステムで実行されます)。Heroku の本番環境アプリケーションで、Windows マシンでローカル開発用に使用しているのと同じバージョンの gem がインストールされるようにするには、アプリケーションを Bundler 2.2 以降に更新することをお勧めします。次のコマンドを実行して、Bundler のバージョンをアップグレードできます。
> gem install bundler
> bundle update --bundler
> bundle lock --add-platform ruby
> bundle lock --add-platform x86_64-linux
> bundle install
> git add Gemfile.lock
> git commit -m "Upgrade bundler"
これらのコマンドを実行すると、Bundler 2.2 以降を使用する Windows アプリケーションは、Bundler の複数のプラットフォームのサポートを利用して適切なバージョンを見つけてインストールするようになります。
Bundler 2.2 以前での Windows サポート
アプリケーションが Bundler 2.2以降にアップグレードできない場合、デプロイ時に Gemfile.lock ファイルは削除され再生成されます。この動作の詳細は、Ruby buildpack の GitHub リポジトリを参照してください。