約束の地

キャロ組

Heroku に Ruby をデプロイするための最小限のファイル

結論

GemfileGemfile.lock があれば Heroku へのデプロイは通ります*1。しかしただデプロイが通るだけです。

補足

Gemfile の中身

Gemfile の中身は空っぽで構いません。

Gemfile.lock の中身

Gemfile の中身は空っぽでよいです。Gemfile が空っぽのまま $ bundle install --path vendor/bundle を行った場合には以下のような Gemfile.lock ファイルになるかと思います。

GEM
  remote: https://rubygems.org/
  specs:

PLATFORMS
  ruby

DEPENDENCIES

BUNDLED WITH
   1.16.1

これで問題ないです。

WARNING が出る

上記の内容でそのまま Push(デプロイ)すると何点かの項目で怒られます。

1. .bundle/ は .gitignore に入れろ

まあ当然なんですが、.bundle/.gitignore に書けということです。

2. Gemfile の中に Ruby のバージョンを明記しろ

Gemfile の中に、以下のように Ruby のバージョンを明記しろと怒られます。

(省略)
ruby '2.5.0'
(省略)
3. Procfile を作れ

明示的に Procfile を作れ、と怒られます。Heroku では web: を指定するとそれが自動的にウェブサーバの指定項目になります

つまり

結局のところいつものファイル群のセットが必要になるわけです。しかし、小規模のアプリ*2ならば最低限の構成でもよいかなとも思います。WARNING も無視してもまあいいんじゃないでしょうか*3

*1:Gemfile.lock が存在しないと「remote: ! Gemfile.lock required. Please check it in.」と出てエラーになる

*2:例えば1時間毎に実行するだけのような定期実行アプリ

*3:本当は良くない

Powered by はてなブログ