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

    Heroku Blog

    Find out what's new with Heroku on our blog.

    Visit Blog
  • Log inorSign up
View 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 の動作

Heroku での Ruby の動作

日本語 — Switch to English

最終更新日 2025年02月12日(水)

Table of Contents

  • 自動検出
  • 環境設定
  • インストールされている Bundler バージョン
  • 利用可能なプロセスタイプ
  • Ruby アプリのビルド動作
  • 特定の Ruby アプリケーションの動作
  • その他の資料

Heroku プラットフォームと Ruby buildpack では、デプロイされたあらゆる種類の Ruby アプリケーションに対して次の動作が行われます。より正式な詳細は、クラシック Ruby buildpack​ または Ruby Cloud Native buildpack の仕様​を参照してください。

特定の種類の Ruby アプリに関連する動作については、純粋な Ruby​、Rails​、Rack ベースのアプリ​に関する記事を参照してください。

自動検出

Heroku 上の Ruby アプリケーションは、使用する正しい buildpack を自動検出できるように、ルートディレクトリに Gemfile.lock​ を含める必要があります。アプリケーションに gem 依存関係がない場合であっても、アプリに gem 依存関係がないことを記載した空の Gemfile​ を含む必要があります。

クラシック buildpack による自動検出

​ [クラシック buildpack](buildpacks#classic-buildpacks)​ では、次のファイルの存在によって決定される、デプロイされたアプリケーションの種類に応じて特定のアクションを実行します。 * `Gemfile`​ ([Ruby アプリケーション](ruby-app-behavior)​ の場合) * `config.ru`​ ([Rack アプリケーション](rack-app-behavior)​ の場合) * `config/environment.rb`​ ([Rails 2 アプリケーション](rails-2-behavior)​ の場合) * `config/application.rb`​ (`Rails::Application`​ 文字列を含む [Rails 3 アプリケーション](rails-3-behavior)​の場合)

環境設定

すべての Ruby アプリで [Ruby アプリケーションの動作](ruby-app-behavior#config-vars)​に記載されている環境変数を設定します。 さらに、[Rack アプリケーションの動作](rack-app-behavior#config-vars)​と [Rails アプリケーションの動作](rails-app-behavior)​に記載されている Rack および Rails アプリケーション用の追加変数を設定します。

インストールされている Bundler バージョン

Heroku プラットフォームでは、Ruby アプリケーションの管理と実行に特定のライブラリセットを使用します。Ruby buildpack は、`Gemfile.lock`​ の `BUNDLED WITH`​ キーに記載されたメジャーバージョンとマイナーバージョンに基づいて Bundler のバージョンをインストールします。 `BUNDLED WITH 1.x`​ は `bundler 1.17.3`​ をインストール `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.6`​ をインストール `Gemfile.lock`​ に `BUNDLED WITH`​ キーがない場合は、以下の[デフォルトバージョン](ruby-support)​を使用します。 特定のバージョンのみをサポートする理由の詳細については、[Bundler のバージョン](bundler-version)​を参照してください。使用可能な設定について詳しくは、[Bundler 設定](bundler-configuration)​を参照してください。

利用可能なプロセスタイプ

次の 2 つのプロセスタイプはいつでも使用できます。 “` rake: bundle exec rake console: bundle exec irb ”`

Cloud Native Buildpack アプリのプロセスタイプ

railties​ gem を含むアプリケーションの場合:

  • Web プロセスはデフォルトで bin/rails server​ に設定され、-p $PORT​ および -e $RAILS_ENV"​ が指定されます。このデフォルト設定は、Procfile​ を使用して上書きできます。

railties​ gem が見つからないが、rack​ gem が存在し、ルートに config.ru​ ファイルがある場合:

  • Web プロセスはデフォルトで rackup​ に設定され、-p $PORT​ および -h 0.0.0.0​ が指定されます。このデフォルト設定は、Procfile​ を使用して上書きできます。

Ruby アプリのビルド動作

クラシック buildpack を使用したビルド

アプリケーションがデプロイされるとき、config​ ディレクトリと環境変数 RAILS_ENV​ または RACK_ENV​ が存在する場合、ビルドフェーズによって、基盤の Rack または Rail アプリケーションがプロビジョニング済みデータベースを使用するように設定されます。

Rails 4.1+ で使われる ActiveRecord 4.1 より前では、database.yml​ ファイルが作成されます。既存の database.yml​ ファイルが置き換えられます。database.yml​ファイルは、DATABASE_URL​ 環境変数を構文解析することによって出力を動的に作成する Ruby コードとして作成されます。

ActiveRecord 4.1 以降では DATABASE_URL​ サポートが組み込まれています。詳しくは、データベース接続の設定​ および DATABASE_URL​ サポートを追加したプルリクエスト​を参照してください

ビルドの最後に rails runner​ インターフェースを使用して、潜在的に問題のあるアプリケーション設定がないかチェックします。

JRuby

JRuby の場合、環境変数 JRUBY_BUILD_OPTS​ を設定することによってビルド中に JVM に渡されるオプションをカスタマイズできます。一般的な値は --dev​ で、これは Bundler および Rake によって実行されるもののような短いプロセスのランタイムを最適化します。

Cloud Native Buildpack を使用したビルド

アプリケーションが rake assets:precompile​ タスクを指定している場合、そのタスクが実行されます。ビルダーは指定された環境変数を使用して rake -P​ を実行してタスクを検出します。アプリケーションで rake assets:precompile:clean​ タスクが指定されている場合、assets:precompile​ が正常に呼び出された後に呼び出されます。

一部のアプリケーションやライブラリでは、モンキーパッチまたは Rake::Task#enhance​ を呼び出して、この assets:precompile​ タスクを変更する場合があります。たとえば古いバージョンの Rails では、この手法​を使用して yarn install​ を呼び出していました。これらの設定タスクやヘルパータスクを手動で呼び出すことはありません。rake assets:precompile​ がアプリケーションのアセットを構築するために必要なものをすべて呼び出すことを想定しています。別の buildpack (heroku/nodejs​ buildpack) を使用して、事前にそれらをインストールするようにアプリケーションを設定することもできます。

特定の Ruby アプリケーションの動作

特定の種類の Ruby アプリに関連する動作については、次の記事を参照してください。

  • Heroku での Ruby アプリケーションの動作
  • Heroku での Rack アプリケーションの動作
  • Heroku での Rails アプリケーションの動作

その他の資料

  • Heroku の Ruby サポート
  • Ruby バージョンの指定
  • Ruby の使用のカテゴリ
  • Heroku での Ruby の動作カテゴリ

関連カテゴリー

  • Heroku での Ruby の動作
Ruby データベースの自動プロビジョニング 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