4

デフォルトのビルドパック (apache) で heroku に php アプリを持っていたので、それを php-fpm + nginx ビルドパック ( https://github.com/iphoting/heroku-buildpack-php-tyler/ ) に変更することにしました。

私は変更コマンドを発行しました:

heroku config:set BUILDPACK_URL=https://github.com/iphoting/heroku-buildpack-php-tyler.git

そしてプッシュ:

git push heroku master

その後、スラッグはコンパイルされますが、bin/release で更新する必要がある PATH 構成変数が更新されていないため、すべてのバイナリが「コマンドが見つかりません」で実行に失敗します。

比較すると、このビルドパックを使用してゼロからアプリを作成する場合、

heroku create -b https://github.com/iphoting/heroku-buildpack-php-tyler.git

すべてが期待どおりに実行されます (そして PATH が存在し、更新されます)。

私の推測では、構成変数 BUILDPACK_URL を変更した後に bin/release が実行されなかったため、PATH 変数が設定されていません。

アプリを機能させるには、手動で PATH 構成変数を追加する必要がありました。他の誰かがこれに遭遇したことがありますか? これは予想される動作ですか?私の理解では、ビン/リリースはスラッグコンパイル後に常に実行する必要がありますか?

編集:git URLを正しい「.git」に修正しました

4

2 に答える 2

4

addonsとのconfig_varsプロパティは、bin/releaseアプリの最初のデプロイ時にビルドパックからのみ取得されます。詳細については、 https://devcenter.heroku.com/articles/buildpack-api#binreleaseを参照してください。

Heroku はビルドパック用の新しいシステムに移行して、アプリの最初のデプロイを超えて機能する構成変数を追加します: https://devcenter.heroku.com/articles/labs-dot-profile-d

ビルドパックが をアプリにコピーする場合.profile.d/buildpack_name.sh、そのファイルはアプリケーションの起動時に読み込まれます。これは、 などの設定に使用できますPATH

于 2012-12-10T16:17:53.957 に答える
0

おそらく、アプリ リポジトリに Procfile があります。既存の Procfile がある場合、bin/release はその内容を上書きしません。https://github.com/iphoting/heroku-buildpack-php-tyler/blob/master/bin/releaseから適切な行 (5 ~ 9) をProcfile にコピーするだけです。

于 2012-12-10T16:07:57.407 に答える