6

次のようなディレクトリ構造があります。

my-app/
  .git/
  db/    <-- Database stuff
  lib/   <-- Business logic
  spec/
  web/   <-- Rails

Rails はweb/リポジトリのサブディレクトリにあります。デフォルトでは、Heroku はこれを好みません。

私は部分的に動作している heroku buildpackを持っています。基本的に、タスクを実行する前Dir.chdirに、環境変数 (存在する場合) に変更するように呼び出します。APP_SUBDIR

Heroku にデプロイしたいのですが、アセット パイプライン タスクが機能しません。アセットをプリコンパイルする段階になると、カスタマイズされたビルドパックがweb/ディレクトリに変更され、タスクの実行が試行されます。

ただし、次の重要なビットとともに、このエラーが発生します。

Could not detect rake tasks
ensure you can run `$ bundle exec rake -P` against your app with no environment variables present
and using the production group of your Gemfile.
Your Ruby version is 1.9.2, but your Gemfile specified 2.0.0 (Bundler::RubyVersionMismatch)

Heroku は、まったく同じパスティで 2.0 を実行していると明確に言っているので、これは奇妙です。実際、私が実行すると:

$ heroku run 'cd web; bundle exec rake -P'

それはうまくいきます。

TL;DR (要約)

Heroku は、自分のビルド プロセスで1.9.2実際に表示されている場合に、私の ruby​​ バージョンを認識します。これはなぜでしょうか?2.0.0

4

1 に答える 1

-1

Rails アプリが存在するサブディレクトリのみを Heroku にプッシュできます。

git subtree push --prefix web heroku master

サブディレクトリはどこwebにありますか。

于 2015-05-18T16:42:03.527 に答える