Skip Navigation
Show nav
Dev Center
  • Get Started
  • ドキュメント
  • Changelog
  • Search
  • Get Started
    • Node.js
    • Ruby on Rails
    • Ruby
    • Python
    • Java
    • PHP
    • Go
    • Scala
    • Clojure
    • .NET
  • ドキュメント
  • Changelog
  • More
    Additional Resources
    • Home
    • Elements
    • Products
    • Pricing
    • Careers
    • Help
    • Status
    • Events
    • Podcasts
    • Compliance Center
    Heroku Blog

    Visit the Heroku Blog

    Find news and updates from Heroku in the blog.

    Visit Blog
  • Log inorSign up
Hide categories

Categories

  • Heroku のアーキテクチャ
    • コンピューティング (dyno)
      • dyno の管理
      • dyno の概念
      • dyno の動作
      • dyno の参照資料
      • dyno のトラブルシューティング
    • スタック (オペレーティングシステムイメージ)
    • ネットワーキングと DNS
    • プラットフォームポリシー
    • プラットフォームの原則
  • 開発者ツール
    • コマンドライン
    • Heroku の VS Code 拡張機能
  • デプロイ
    • Git を使用したデプロイ
    • Docker によるデプロイ
    • デプロイ統合
  • 継続的デリバリーとインテグレーション
    • 継続的統合
  • 言語サポート
    • Node.js
      • Node.js アプリのトラブルシューティング
      • Heroku での Node.js の動作
      • Node.js の操作
    • Ruby
      • Rails のサポート
      • Bundler の使用
      • Ruby の操作
      • Heroku での Ruby の動作
      • Ruby アプリのトラブルシューティング
    • Python
      • Python の操作
      • Python でのバックグラウンドジョブ
      • Heroku での Python の動作
      • Django の使用
    • Java
      • Heroku での Java の動作
      • Java の操作
      • Maven の使用
      • Spring Boot の使用
      • Java アプリのトラブルシューティング
    • PHP
      • PHP の操作
      • Heroku での PHP の動作
    • Go
      • Go の依存関係管理
    • Scala
    • Clojure
    • .NET
      • Working with .NET
  • データベースとデータ管理
    • Heroku Postgres
      • Postgres の基礎
      • Postgres スターターガイド
      • Postgres のパフォーマンス
      • Postgres のデータ転送と保持
      • Postgres の可用性
      • Postgres の特別なトピック
      • Heroku Postgres への移行
    • Heroku Key-Value Store
    • Apache Kafka on Heroku
    • その他のデータストア
  • AI
    • Vector Database
    • Working with AI
    • Heroku Inference
      • AI Models
      • Inference Essentials
      • Heroku Inference Quick Start Guides
      • Inference API
    • Model Context Protocol
  • モニタリングとメトリクス
    • ログ記録
  • アプリのパフォーマンス
  • アドオン
    • すべてのアドオン
  • 共同作業
  • セキュリティ
    • アプリのセキュリティ
    • ID と認証
      • シングルサインオン (SSO)
    • Private Space
      • インフラストラクチャネットワーキング
    • コンプライアンス
  • Heroku Enterprise
    • Enterprise Accounts
    • Enterprise Team
    • Heroku Connect (Salesforce 同期)
      • Heroku Connect の管理
      • Heroku Connect のリファレンス
      • Heroku Connect のトラブルシューティング
  • パターンとベストプラクティス
  • Heroku の拡張
    • Platform API
    • アプリの Webhook
    • Heroku Labs
    • アドオンのビルド
      • アドオン開発のタスク
      • アドオン API
      • アドオンのガイドラインと要件
    • CLI プラグインのビルド
    • 開発ビルドパック
    • Dev Center
  • アカウントと請求
  • トラブルシューティングとサポート
  • Salesforce とのインテグレーション
  • 言語サポート
  • Ruby
  • Heroku の Ruby サポート

Heroku の Ruby サポート

日本語 — Switch to English

この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。

最終更新日 2025年04月16日(水)

Table of Contents

  • 新しいアプリについての Ruby のデフォルトバージョン
  • Ruby バージョンを指定する
  • Ruby バージョンサポートポリシー
  • サポートされている Ruby バージョン
  • Ruby バージョン
  • サポートされていない Ruby バージョン
  • JRuby バージョン設定
  • JRuby バージョンの指定
  • JRuby バージョンポリシー
  • サポートされている JRuby バージョン
  • Bundler バージョン設定
  • デフォルトの Bundler バージョン
  • Bundler バージョンポリシー
  • サポートされている Bundler バージョン
  • Rails バージョン設定とサポートポリシー
  • Ruby JIT のサポート
  • インストールされるバイナリ
  • Node.js Support
  • 動作
  • トラブルシューティング
  • カスタマーサポート
  • その他の資料

Heroku は Ruby のさまざまな実装で Ruby アプリケーションを実行でき、フレームワーク固有のワークフローのためのサポートを備えています。このドキュメントには、バージョンのサポート情報が記載されています。

Heroku が Ruby アプリケーションを認識して実行する一般的な動作に関する情報については、「Heroku での Ruby の動作​」を参照してください。フレームワーク固有のチュートリアルについては、次を参照してください。

  • Cedar​ 世代のアプリ向け「Heroku スターターガイド (Ruby)​」チュートリアル
  • Fir​ 世代のアプリ向け「Heroku スターターガイド (Ruby)​」チュートリアル
  • Heroku スターターガイド (Rails 7)
  • Heroku スターターガイド (Rails 7)
  • Ruby on Rails アプリケーションイメージを 5 分でローカルに構築します。Dockerfile は必要ありません。

新しいアプリについての Ruby のデフォルトバージョン

Gemfile​ に ruby​ エントリがない場合、現在のデフォルトバージョンは Cedar​ 世代のアプリでは MRI 3.3.7​、Fir​ 世代のアプリでは MRI 3.3.7​ です。

Cedar 世代のアプリでは、Ruby のバージョンを指定するか、Heroku がデフォルトバージョンを更新した後の次のビルドまでデフォルトがロックされますが、Fir ではロックされません。たとえば、アプリでデフォルトの Ruby バージョン 3.1.6​ を使用している場合、3.1.6​ が維持されます。今後 Heroku が現在のデフォルトバージョンを更新した場合、次にアプリを再構築してデプロイするときは、その新しいデフォルトバージョンが使用されます。

デフォルトの Ruby バージョンに依存せずに、Gemfile で Ruby バージョンを指定することを強くお勧めします。アプリケーションの Gemfile.lock​ にこの値がない場合は、Gemfile​ に ruby​ 宣言があることを確認してから以下を実行します。

$ bundle update --ruby

デフォルトの Ruby バージョンはスティッキーではありません。デフォルトバージョンの変更後にデプロイするときに不安定になることを防ぐため、アプリケーションに Ruby バージョンを指定することを強くお勧めします。

Ruby バージョンを指定する

Gemfile.lock​ で指定した Ruby バージョンがインストールされます。次に例を示します。

RUBY VERSION
   ruby 3.3.5p100

Heroku では多数の異なる Ruby 実装を使用できます。特定のバージョンを選択するようアプリを設定できます。手順については「Ruby バージョンの指定​」を参照してください。

アプリが使用するバージョンはビルドアーティファクトに含まれています。

Ruby バージョンサポートポリシー

Ruby バージョンのサポートは、Ruby Core Support ポリシー​に従います。サポートされている Ruby バージョンの最新のパッチリリースを実行することをお勧めします。Ruby バージョンが Ruby Core からサポート終了 (EOL) になる前にアップグレードしてください。

アップグレードは一度に 1 つのバージョン (1 つの Ruby バージョン、Rails バージョン、Heroku ビルダーバージョンなど) のみ行うことをお勧めします。この段階的なプロセスにより、ビルドまたはランタイムの不整合が単一の変更に分離されるため、問題をより迅速に分離して修正できます。Cloud Native Buildpack アプリでは、pack build​ と Docker 経由で Ruby アプリケーションをローカルでデバッグ​することもできます。

サポートされている Ruby バージョン

Ruby には実装が何種類かありますが、これは ruby-lang 経由で提供されるソースから構築​されています。これは「ruby/ruby」、「CRuby」、「MRI」とも呼ばれます。JRuby 実装​もサポートしています。

Heroku では、次の Ruby バージョンおよび関連する Rubygem がサポートされています。サポートされているバージョンとは、Heroku のツールおよびプラットフォームが所定のバージョンと連動することを期待できることを意味します。また、技術サポートを受けられることも意味します。サポートされている Ruby のバージョンは次のとおりです。

Ruby バージョン

  • 3.2.8​、Rubygems: ​3.4.19
  • 3.3.8​、Rubygems: ​3.5.22
  • 3.4.3​、Rubygems: ​3.6.7

ある Ruby のバージョンがサポート終了を迎えると、セキュリティパッチを入手できなくなります。Ruby のコアによって積極的にサポートされている Ruby のバージョンを実行することを強くお勧めします。

サポートされていない Ruby バージョン

以下に、スタックごとに存在する廃止予定のランタイムバージョンの一覧を示します。EOL バージョンは Ruby Core から更新を受け取らなくなったため、Heroku Ruby サポートポリシーの対象外です。

Rails などのライブラリのバージョンが、サポートされている Ruby バージョンで機能しない場合、Rails LTS​ などのサービスを使用できます。Rails LTS は、古いリリースの維持管理されたバージョンを有料で提供します。Rails LTS プロジェクトは Heroku や Rails Core​ と提携していません。

Cedar でサポートされていないバージョン

  • heroku-20​ スタック上:

    • 2.5.x (EOL): ​2.5.7​ ~ 2.5.9
    • 2.6.x (EOL): ​2.6.6​ ~ 2.6.9
    • 2.7.x (EOL): ​2.7.1​ ~ 2.7.8
    • 3.0.x (EOL): ​3.0.0​ ~ 3.0.7
    • 3.1.x: ​3.1.0​ ~ 3.1.7
    • 3.2.x: ​3.2.0​ ~ 3.2.7
    • 3.3.x: ​3.3.0​ ~ 3.3.7
    • 3.4.x: ​3.4.0​ ~ 3.4.2
  • heroku-22​ スタック上:

    • 3.1.x: ​3.1.0​ ~ 3.1.7
    • 3.2.x: ​3.2.0​ ~ 3.2.7
    • 3.3.x: ​3.3.0​ ~ 3.3.7
    • 3.4.x: ​3.4.0​ ~ 3.4.2
  • heroku-24​ スタック上:

    • 3.1.x: ​3.1.0​ ~ 3.1.7
    • 3.2.x: ​3.2.0​ ~ 3.2.7
    • 3.3.x: ​3.3.0​ ~ 3.3.7
    • 3.4.x: ​3.4.0​ ~ 3.4.2

たとえば、2.5.9 は Heroku-20 スタックでは「サポート対象外」ですが、ご自身の責任で引き続き使用できることを意味します。Heroku では、サポートされている Ruby バージョンを使用することを常にお勧めします。

Fir でサポートされていないバージョン

特定のビルダーで構築された以前の Ruby バージョン (heroku-24​ など) は、そのビルダーを利用できる限りアクセス可能です。利用可能なこれらの EOL Ruby バージョンを使用してアプリケーションを段階的にアップグレードし、サポートされているバージョンに移行できるようにすることをお勧めします。

利用可能な (ただしサポートされていない) Ruby バージョン:

  • heroku-24​ビルダー上:
    • 3.1.x: ​3.1.0​ ~ 3.1.5
    • 3.2.x: ​3.2.0​ ~ 3.2.3
    • 3.3.x: ​3.3.0​ ~ 3.3.4

JRuby バージョン設定

アプリケーションが Gemfile.lock,​ で JRuby エンジンを指定すると、要求された JRuby バージョンとともに Java 仮想マシン (JVM) のバージョンがインストールされます。次に例を示します。

RUBY VERSION
   ruby 2.6.8p001 (jruby 9.3.6.0)

Gemfile.lock​ でバージョンが指定されていない場合、アプリケーションは JRuby ではなくデフォルトバージョンの Ruby​ を使用してデプロイを試行します。

JRuby バージョンの指定

JRuby バージョンは、以下のテーブルの一覧で示す複数の Ruby バージョンをサポートしています。Gemfile​ でバージョンを指定する必要があります。JRuby は、JRuby と一緒にインストールされている JVM 上で実行します。サポートされている Java バージョンの一覧および特定のバージョンを設定する方法については、Java サポート記事​を参照してください。

JVM 環境および使用可能な JVM オプション (JAVA_TOOL_OPTIONS​ など) について詳しくは、Heroku の Dev Center の Java サポート​を参照してください。

Zulu JDK の使用や jmap​ の実行などの高度な JDK オプションについては、アプリの最初の buildpack として heroku/jvm​ buildpack を追加する​必要があります。

JRuby バージョンポリシー

JRuby のサポートは、JRuby Core のバージョンサポートに従います。

サポートされている JRuby バージョン

JRuby は Heroku プラットフォームにデプロイできる Ruby 言語の Java 仮想マシン (JVM) 実装です。

JRuby バージョン

  • 9.1.17.0​、Ruby バージョン: [2.3.3​]
  • 9.2.21.0​、Ruby バージョン: [2.5.8​]
  • 9.3.15.0​、Ruby バージョン: [2.6.8​]
  • 9.4.11.0​、Ruby バージョン: [3.1.4​]

Bundler バージョン設定

Heroku プラットフォームでは、Ruby アプリケーションの管理と実行に特定のライブラリセットを使用します。

Cedar での Bundler バージョン設定

Ruby buildpack は、Gemfile.lock​ の BUNDLED WITH​ キーに記載されたメジャーバージョンとマイナーバージョンに基づいて Bundler のバージョンをインストールします。

  • BUNDLED WITH 1.x.​ は bundler 1.17.3​ をインストール (警告:​ このバージョンは廃止予定であり、サポートは 2025 年 4 月 30 日に削除されます)
  • BUNDLED WITH 2.0.x to 2.3.x​ は bundler 2.3.25​ をインストール
  • BUNDLED WITH 2.4.x​ は bundler 2.4.22​ をインストール
  • BUNDLED WITH 2.5.x​ は bundler 2.5.23​ をインストール
  • BUNDLED WITH 2.6.x​ は bundler 2.6.2​ をインストール

特定のバージョンのみをサポートする理由の詳細については、「Bundler のバージョン​」を参照してください。使用可能な設定について詳しくは、Bundler 設定​を参照してください。

Fir での Bundler バージョン設定

以下のフォーマットに従っている限り、Gemfile.lock​ で指定した正確な Bundler バージョンがインストールされます。

BUNDLED WITH
   2.5.6

bundle install​ を実行して依存関係をインストールします。この呼び出しは、CLI 引数と環境変数​を使用して設定します。

デフォルトの Bundler バージョン

Gemfile.lock​ に BUNDLED WITH​ キーがない場合は、以下のデフォルトバージョンを使用します。

  • Cedar​ 世代のアプリ 2.3.25
  • Fir​ 世代のアプリ 2.5.23

Gemfile.lock​ に RUBY VERSION​ と BUNDLED WITH​ の両方のバージョンをリストアップすることを強くお勧めします。これらの値がない場合は、値を生成して Git にコミットできます。

$ bundle update --ruby
$ git add Gemfile.lock
$ git commit -m "Update Gemfile.lock"

Gemfile.lock​ でこれらの値が指定されていないアプリケーションは、デフォルトが変更されると予期せず停止する可能性があります。

Bundler バージョンポリシー

Cedar 向けの Bundler バージョンポリシー

Cedar​ アプリ向けに Bundler の特定のバージョン​をサポートしています。

Fir 向けの Bundler バージョンポリシー

Fir​ アプリの場合、Gemfile.lock​ フォーマットと bundle install​ 設定オプションのサポートには、Bundler のメンテナンスポリシーが反映されています。使用された元のビルダーがサポートされている限り、Bundler バージョン固有のコードを引き続き使用できます。

サポートされている Bundler バージョン

Cedar でサポートされている Bundler バージョン

「Bundler バージョン設定​」に一覧表示されている特定のバージョンのみをサポートしています。特定のバージョンのみをサポートする理由の詳細については、「Bundler のバージョン​」を参照してください。

Fir でサポートされている Bundler バージョン

Bundler バージョンのサポートには、RubyGems のメンテナーポリシーが反映されています。アプリケーション開発者には、デプロイ時に発生したバグが、同じ Bundler コマンドで実行するときにローカルに存在しないことを確認する責任があります。

Rails バージョン設定とサポートポリシー

アプリケーションの Rails バージョンを指定するには、Gemfile​ で指定します。詳細については、「Rails バージョンのサポート​」を参照してください。

Ruby JIT のサポート

JIT は「Just in Time (実行時)」コンパイラの略です。JIT インプリの目的は、より効率的なコードを提供してプログラムの実行を高速化することです。通常は Ruby コードをマシンコードにコンパイルします。JIT を使用するとメモリ消費量が増加しますが、すべてのプログラムが必ず高速化するわけではありません。使用する JIT インプリがアプリコードに適していない場合、JIT を使用するとアプリケーションの速度が低下する可能性があります。

YJIT

YJIT のほうがアプリケーションを高速化できる可能性が高くなっています。Ruby アプリケーションで YJIT を有効にするには、次のコマンドを実行します。

$ heroku config:set RUBYOPT="--enable-yjit"

次に、以下を実行して機能したことを確認します。

$ heroku run bash
~ $ irb
irb(main):001:0> puts RubyVM::YJIT.runtime_stats
{:inline_code_size=>488880, :outlined_code_size=>404622}

MJIT

Ruby では、Ruby 2.6 で MJIT が導入され、Ruby 3.1 で YJIT が導入されました。MJIT は実際のアプリケーションの多くを高速化しないため、推奨されません。MJIT では実行時に gcc​ が必要ですが、すべての Heroku スタック​で使用できるとは限りません。

インストールされるバイナリ

Ruby バイナリとそれに付属するデフォルトのツール (rubygems​ や bundler​ など) に加えて、一部のアプリケーションでは、アプリケーションを実行するために追加のバイナリが必要です。Heroku ではこのような依存関係をインストールするには明示的な buildpack を使用することを強く推奨していますが、heroku/ruby​ buildpack が追加のバイナリをインストールする場合もあります。このセクションでは、インストールされるバイナリとその条件を紹介します。

アプリケーションのルートに package.json​ があり、過去の node​ バイナリがパス上に見つからない場合、Ruby buildpack は Node.js のデフォルトバージョンと NPM をインストールします。アプリケーションのルートに yarn.lock​ ファイルがあり、過去の yarn​ バイナリがパス上に見つからない場合は、Yarn のバージョンをインストールします。 “`

Node.js Support

Many Ruby applications use Node ecosystem tools to generate frontend assets. The heroku/ruby buildpack will install a default version of Node to support these applications. However, we highly recommend using the heroku/nodejs buildpack and specifying versions via package.json. For example:

{
  "engines": {
    "node": "20.9.0",
    "yarn": "1.22.19"
  }
}

詳細は、「Node.js サポート​」を参照してください。

Cedar でのデフォルトの Node.js と Yarn のバージョン

Cedar​ 世代のアプリに過去の buildpack からインストールされた node​ バイナリ (heroku/nodejs​ など) がなく、以下の検出条件を 1 つ以上満たす場合は、デフォルトバージョンの node​ や yarn​ がインストールされます。

  • アプリケーションのルートディレクトリに package.json​ ファイルがある
  • execjs​ から Gemfile.lock​ gem が検出された
  • webpacker​ から Gemfile.lock​ gem が検出された
  • yarn.lock​ ファイル

これらの検出条件を 1 つ以上満たすと、heroku/ruby​ buildpack は次のデフォルトをインストールします。

  • Node: ​22.11.0
  • Yarn: ​1.22.22 > warning > デフォルトのバージョンは時間と共に変わるため、この動作に長期的に頼ることはお勧めしません。アプリケーションの Node または Yarn のバージョンを制御するには、heroku/nodejs​ buildpack を project.toml​ ファイルに追加する必要があります​。package.json​ で 依存するエンジンのバージョンを指定します。詳細は、「複数のビルドパックの使用​」を参照してください。

Fir でのデフォルトの Node.js と Yarn のバージョン

Fir​ 世代のアプリで、アプリケーションのルートに package.json​ が含まれる場合は、heroku/nodejs-engine​ buildpack が必要になります。これは、heroku/nodejs​ CNB​ から受け取るのと同じデフォルトバージョンの node​ をインストールします。

詳細は、「Node.js サポート​」を参照してください。

デフォルトのバージョンは時間と共に変わるため、この動作に長期的に頼ることはお勧めしません。アプリケーションの Node または Yarn のバージョンを制御するには、heroku/nodejs​ buildpack を project.toml​ ファイルに追加する必要があります​。package.json​ で 依存するエンジンのバージョンを指定します。詳細は、「複数のビルドパックの使用​」を参照してください。

動作

動作についての詳細は、次の記事を参照してください。

  • Heroku での Ruby の動作
  • Heroku での Ruby アプリケーションの動作
  • Heroku での Rack アプリケーションの動作
  • Heroku での Rails アプリケーションの動作
  • Ruby Behavior category​ (Ruby の動作カテゴリ)

トラブルシューティング

その他の問題のヘルプについては、「デバッガ gem のインストールの失敗の解決​」または「Troubleshooting Ruby Apps category​」(Ruby アプリのトラブルシューティングのカテゴリ) を参照してください。

カスタマーサポート

Heroku サポートチャネル​のいずれかを通じて問題を報告できます。

その他の資料

  • Ruby バージョンの指定
  • Ruby の使用のカテゴリ
  • Rails のサポートのカテゴリ
  • Bundler の使用のカテゴリ
  • Troubleshooting Ruby Apps category​ (Ruby アプリのトラブルシューティングのカテゴリ)

関連カテゴリー

  • Ruby
Heroku スターターガイド (Ruby)(Microsoft Windows) Heroku スターターガイド (Ruby)

Information & Support

  • Getting Started
  • Documentation
  • Changelog
  • Compliance Center
  • Training & Education
  • Blog
  • Support Channels
  • Status

Language Reference

  • Node.js
  • Ruby
  • Java
  • PHP
  • Python
  • Go
  • Scala
  • Clojure
  • .NET

Other Resources

  • Careers
  • Elements
  • Products
  • Pricing
  • RSS
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku Blog
    • Heroku News Blog
    • Heroku Engineering Blog
  • Twitter
    • Dev Center Articles
    • Dev Center Changelog
    • Heroku
    • Heroku Status
  • Github
  • LinkedIn
  • © 2025 Salesforce, Inc. All rights reserved. Various trademarks held by their respective owners. Salesforce Tower, 415 Mission Street, 3rd Floor, San Francisco, CA 94105, United States
  • heroku.com
  • Legal
  • Terms of Service
  • Privacy Information
  • Responsible Disclosure
  • Trust
  • Contact
  • Cookie Preferences
  • Your Privacy Choices