デプロイメントの失敗
アプリケーションをデプロイする際、ビルドまたはロールアウトの段階でエラーが発生し、失敗する場合があります。まずは個々のデプロイメントログとランタイムログを開き、デプロイに失敗した原因を特定できないかを確認してください。こちらのページでは、ご紹介する各デプロイメントエラーのトラブルシューティング方法をご紹介します。それぞれの手順に従っても問題が解決しない場合はこちらをご覧ください。
ビルドプロセス失敗「No Buildpack Groups Passed Detection」
アプリケーションをデプロイする際、ビルドプロセスでアプリケーションのBuildpacksの検出に問題があると、「デプロイメントログ」に以下のようなエラーが表示されることがあります。
ビルドプロセス失敗
不明なビルドエラーが発生しました
「デプロイメントログ」のエラーをクリックして、ビルドプロセスのログを表示し、以下のようなエラーを探してください。
===> DETECTING
ERROR: No buildpack groups passed detection.
ERROR: Please check that you are running against the correct path.
ERROR: failed to detect: no buildpacks participating
ERROR: failed to build: executing lifecycle: failed with status code: 20
このエラーは、アプリケーションの種類を正しく検出するための情報が十分でない場合に発生します。通常、以下のいずれかが原因です。
- Gitリポジトリにアプリケーションに必要なすべてのファイルが含まれていない
- コードや設定によって誤ったBuildpackが選択されている
- ビルドパスが正しくない
Git リポジトリ
リポジトリにアプリケーションに必要なファイルがすべて反映されていることを確認してください。
Buildpack
アプリケーションの追加時に「コンテナイメージを自動で設定」を選択すると、Buildpackを使ってアプリケーション用のコンテナが自動的に決定、セットアップされます。アプリケーションに追加のBuildpackが必要な場合は、アプリケーションの「設定」>「ビルド」で追加可能です。
Buildpackを使用する場合は、アプリケーションのファイルに正しい言語バージョンが含まれているかどうかを確認してください。詳しくは、NixpacksまたはBuildpacksに関するドキュメントをご覧ください。
ビルドパス
ビルドパスは、アプリケーションのビルドに必要なファイルへのリポジトリ内のパスを意味します。通常はリポジトリのルートとなり、アプリケーションの追加時にビルドパスを設定する必要はありません。
アプリケーションのビルドパスが異なる場合は、アプリケーションを追加する際に設定するか、「設定」(「設定」>「ビルド」>「環境の切り替え」情報を編集」>「ビルドパス」)で変更することができます。例えば、アプリケーションをサブディレクトリ(例:app)からビルドする場合は、「ビルドパス」のフィールドに、そのサブディレクトリのパス「/app」を入力します。
プロセスが早く終了したことによるビルドの失敗
アプリケーションのデプロイ時に、ビルド処理に問題がある場合、以下のようなエラーが表示されることがあります。
プロセスが早く終了したため、ビルドが失敗しました。これはおそらく、システムがメモリ不足に陥ったか、誰かがプロセスに対して
kill -9
を呼び出したことを意味します
通常、アプリケーションビルドマシンのシステムメモリが不十分であることが原因です。
このエラーを解決するには、アプリケーションのビルドマシンのサイズを引き上げます。アプリケーションの「設定」>「ビルド」>「リソースを変更」に移動し、より大きなビルドマシンを選択して、「ビルドの変更」をクリックして保存します。
Buildpackのバージョンによるビルドの失敗
Buildpacksを使用してアプリケーションをデプロイすると、以下のようなBuildpackのバージョンに関連するエラーが表示されることがあります。
Please switch to one of our newer ‘heroku/builder:*’ builder images, such as ‘heroku/builder:22’(heroku/builder:22′ など、より新しい ‘heroku/builder:*’ ビルダーイメージに切り替えてください)
このエラーは、MyKinstaのビルド設定が更新されたことが原因と考えられます。以下の手順でトラブルシューティングを行ってください。
- MyKinstaで「アプリケーション」>(アプリ名)>「プロセス」>「ウェブプロセスの変更」をクリックします。Laravelアプリケーションの場合は、startコマンドに
heroku-php-apache2 /public
を入力し、その他のPHPアプリケーションの場合は、startコマンドを削除します。 - 「変更」をクリックします。
- 「デプロイメント」画面を開き、「デプロイする」をクリックします。
ロールアウトの失敗
アプリケーションのデプロイ時に何かしらのエラーが生じた場合、以下のようなエラーメッセージが表示されることがあります。
ビルドプロセス失敗
不明なビルドエラーが発生しました
ロールアウトプロセスがすぐに失敗した場合、またはビルドプロセスに失敗した場合、Podは作成されず、実行ログも生成されることはありません。主にウェブプロセスでの不正なstartコマンドが正しくないことが原因です(Dockerfileでビルドされたアプリケーションは、Dockerfileの正しくないENTRYPOINT
も原因になります)。
ロールアウトプロセスが1~2分実行された後に失敗した場合も、通常Podと実行ログは作成されず、何かしらの誤りが原因でプロセスが停止したことを意味します。この場合は、デプロイメントのランタイムログを閲覧し、エラーメッセージを確認してください。エラーメッセージはアプリケーションのコードのバグを特定するのに役立ち、効率的に問題のデバッグを行うことができます。
以下にご紹介するトラブルシューティングを行った上で、エラーの原因を特定できない場合は、弊社カスタマーサポートまでお問い合わせください。
Gitリポジトリ
アプリケーションの正しいファイルが、すべてリポジトリに反映されていることを確認してください。
言語
アプリケーションを追加し、コンテナイメージの作成にNixpacksまたはBuildpacksを選択すると、アプリケーション用のコンテナが自動的に検出、設定されます。また、NixpackまたはBuildpackを使用する場合は、アプリケーションのファイルに正しい言語バージョンが含まれていることを確認してください。詳細については、Buildpacksの言語バージョンの指定またはNixpacksの言語バージョンの指定に関するドキュメントをご覧ください。
Nixpacksでコンテナイメージを設定し、PHPまたはPythonアプリケーションをデプロイしてロールアウトに失敗する場合は、アプリケーションのコードに言語バージョンの指定がない可能性が高いです。以下を確認し、言語バージョンが設定されていることを確認してください。
PHP
リポジトリにcomposer.jsonファイルがある場合は、require
キーとPHPバージョンを含む必要があります。
{
"require": {
"php": "~8.1.0"
}
}
Python
Pythonのバージョンを指定するには、アプリケーションのruntime.txtファイルに次のように記述してください。
python-3.10.13
startコマンドまたは ENTRYPOINT
アプリケーションは、ウェブプロセスのstartコマンド、またはENTRYPOINT
によって起動します。これに誤りがある場合、アプリケーションは実行されません。このコマンドは、「プロセス」>「ランタイムプロセス」>「ウェブプロセス」で確認可能です。
Dockerfileを使用してコンテナイメージをセットアップする場合は、コンテナの実行に、DockerfileでのENTRYPOINT
指定が必要になります。アプリケーションのENTRYPOINT
を指定する方法については、Dockerfileについての公式ドキュメントをご覧ください。
言語別コマンドの詳細についてはこちらをご覧ください。
ビルドパスまたはDockerfileコンテキスト
アプリケーションを追加する際は、NixpackまたはBuildpackを使用してコンテナイメージを自動設定するか、Dockerfileを使用してコンテナイメージを設定するかを選択します。
- ビルドパス:NixpackとBuildpackにのみ適用され、アプリケーションのビルドに必要なファイルへのリポジトリ内のパスを意味します。一般的には、リポジトリルート(.)からビルドされますが、別のビルドパスがある場合は、このフィールドで指定してください。アプリケーションをサブディレクトリ(例:app)からビルドする場合は、このフィールドに「app」と入力します。これはモノレポを使用している場合にも便利です。
- コンテキスト:Dockerfilesにのみ適用され、アプリケーションのビルドに必要なリポジトリ内のパスを意味します。一般的には、リポジトリルートからビルドされるため、その場合は、このフィールドにリポジトリルート(.)を入力してください。アプリケーションをサブディレクトリ(例:app)からビルドする場合は、このフィールドに「app」と入力します。
ビルドパスおよびDockerfileのコンテキストは、アプリケーションの「設定」>「ビルド」>「環境の切り替え」で確認・変更可能です。
環境変数
環境変数は、アプリケーションに対してその外から情報を与えるものです。環境変数に誤りがあると、アプリケーション実行の妨げになることがあります。環境変数は「環境変数」画面で確認可能です。

この画面で正しい環境変数が存在し、有効な値が含まれていることを確認します。環境変数の作成・確認の際には、以下の点に注意してください。
- 各キーはすべて一意で、一度しか使用できません。
- 括弧を使用することはできません。デプロイ中に使用可能になるタイミングにもよりますが、ビルドまたはロールアウト処理に失敗する可能性があります。
- エスケープされていないカンマ( , )はロールアウトプロセスで区切り文字として認識されるため、使用できません。環境変数の値でカンマを使用するには、バックスラッシュ(
\
)でエスケープする必要があります。 - エスケープされていない二重引用符( ” )は無視されるか、ロールアウト処理の失敗の原因となります。環境変数で二重引用符を使用する必要がある場合は、バックスラッシュ(
\
)でエスケープする必要があります。
ポート
ウェブアプリケーションサーバーでは、80番および443番ポートのみが開かれています。アプリケーションのウェブプロセスが使用するポートは、アプリケーションの追加時、または「ネットワーク」>「ポートを編集」で変更可能です。
無効なパッケージ名
package.jsonの無効なパッケージ名は、エラーを引き起こすことがあるため、パッケージ名に「js」や「node」は使用しないでください。詳しくは、npmの公式ドキュメントをご覧ください。
Error: failed to solve: process
Laravelアプリケーションをデプロイする際、以下のようなエラーが発生することがあります。
ERROR: failed to solve: process “/bin/bash -ol pipefail -c npm run build” did not complete successfully: exit code: 126(“/bin/bash -ol pipefail -c npm run build”が正常に完了しませんでした)
このエラーは、リポジトリ内にvendor
フォルダとnode_modules
フォルダが存在する場合に発生します。これらのフォルダはビルドプロセス中に生成されるため、解決するにはリポジトリから削除する必要があります。