6

HerokuアプリをAspenからHerokuのCedarスタックに移植しています。

私は最後の展開ステップにいます。このエラーが発生します:

    2012-10-22T11:23:53+00:00 heroku[web.1]: Starting process with command `bundle exec thin start -p 40310 -e production`
2012-10-22T11:23:54+00:00 app[web.1]: bash: bundle: command not found

バンドルがまさにこのジョブのために使用されているため、バンドルがどこにあるかをHerokuスタックに通知したり、バンドルを提供したりする責任をどのように負うことができるかわかりません。このコマンドは、アプリのProcfileで指定されています。

web: bundle exec thin start -p $PORT -e $RACK_ENV

stackoverflowに関する別の同様の質問は、アプリが最初にProcfileなしでHerokuにプッシュされた場合に発生することを示唆しているため、Herokuはアプリの種類について間違った考えを持っています。そのポスターは彼のアプリを削除し、新しいアプリを作成して成功を報告しました。ただし、移植したアプリの削除と再作成には多大な労力が必要です。最初からやり直すのではなく、これを修正する方法はありますか?

4

2 に答える 2

5

Heroku のスラッグ ビルド プロセスは、ruby 1.8.7 アプリに関して変更されたに違いありません。1.8 アプリ用の 1.9.1 ではなく、1.8 パスへのバンドルを開始したと思います。新しいリビジョンをプッシュしようとした後、以前動作していたアプリが動作しなくなりました。

再び機能するようになったのは次のとおりです。

heroku config:add PATH=bin:vendor/bundle/1.8/bin:/usr/local/bin:/usr/bin:/bin GEM_PATH=vendor/bundle/1.8

以前に使用したのと同じ git リポジトリを使用して、新しく作成したアプリからこれらのパスを取得しました。

編集: herokuが、さまざまな Ruby バージョンのパスを指定する devcenter の記事「Changing Ruby Version Breaks Path」を公開したことがわかりました。

于 2012-11-08T19:12:01.020 に答える
2

同じ問題があり、正しいheroku構成変数を設定することで解決しました

$ heroku config
=== xxxx Config Vars
DATABASE_URL:                  postgres://(...)
GEM_PATH:                      vendor/bundle/ruby/1.9.1
HEROKU_POSTGRESQL_CRIMSON_URL: postgres://(...)
LANG:                          en_US.UTF-8
PATH:                          bin:vendor/bundle/ruby/1.9.1/bin:/usr/local/bin:/usr/bin:/bin
PGBACKUPS_URL:                 https://(...)
RACK_ENV:                      production
RAILS_ENV:                     production

空の Rails アプリを作成し、heroku にプッシュして、自動的に設定された変数を確認し、それらをアプリケーションにコピー (および適応) することができます。

于 2012-10-26T17:45:34.923 に答える