Heroku 環境の最小限
概要
Heroku の環境を更新していますが、使用しているビルドパックの 1 つは Ruby に基づいており、新しい heroku-22 環境/スタックではデフォルトで利用できなくなりました (PHP アプリでも必要ありません)。
ドキュメントから:
ただし、Ruby の経験がまったくないので、これらのファイルに何を含めるべきかわかりません。 Heroku で Ruby のインストールをトリガーするための最小限の Gemfile の有効なセットは何ですか?
解決策
編集済み
空の Gemfile だけでは十分ではなく、実際には Gemfile.lock も必要であることがわかりました。
-----> Building on the Heroku-22 stack
-----> Using buildpacks:
1. heroku/python
2. heroku/ruby
3. https://github.com/thoughtbot/heroku-buildpack-mysql
4. heroku/php
5. heroku/nodejs
-----> Python app detected
-----> Using Python version specified in runtime.txt
-----> Stack has changed from heroku-20 to heroku-22, clearing cache
-----> No change in requirements detected, installing from cache
-----> Installing python-3.10.8
-----> Installing pip 22.2.2, setuptools 63.4.3 and wheel 0.37.1
-----> Installing SQLite3
-----> Installing requirements with pip
Collecting supervisor
Downloading supervisor-4.2.4-py2.py3-none-any.whl (749 kB)
Installing collected packages: supervisor
Successfully installed supervisor-4.2.4
-----> Ruby app detected
grep: /tmp/build_bebc9aa2/Gemfile.lock: No such file or directory
-----> Compiling Ruby/NoLockfile
!
! Gemfile.lock required. Please check it in.
!
! Push rejected, failed to compile Ruby app.
! Push failed
空の Gemfile は Ruby のインストールをトリガーしますが、heroku/ruby パッケージ自体にはロック ファイルが必要です。
試行錯誤の結果、次のファイルが機能することがわかりました。
# Gemfile
source 'https://rubygems.org'
# Gemfile.lock
GEM
remote: https://rubygems.org/
specs:
PLATFORMS
ruby
DEPENDENCIES
BUNDLED WITH
1.17.3
Gemfile.lock は、(バンドルのインストール後) バンドル インストールを実行することによって自動生成することもできます。