デプロイトラブルシューティングredeploy がビルドをキャンセルした

変更で始まったビルドを redeploy がキャンセルしました

フィールドを変更するために lizard service set を実行し、その後 lizard redeploy を実行しました。デプロイが予想より長くかかり、履歴にはキャンセルされたビルドが表示されることがあります。

これは何を意味するのか

service set の呼び出しは、すでにそれ自体で再ビルドを開始していました。続けて実行した redeploy はそのビルドをキャンセルし(ログの最後に --- Build cancelled: a newer deploy was triggered --- と表示されます)、同じビルドを最初からやり直しました。

なぜこれが起こるのか

サービスの ビルドに影響する フィールド — repoUrl、branch、sourceType、buildCommand、dockerfilePath、または rootDirectory — を変更すると、稼働中のサービスはすぐに自動で再ビルドされます。クラッシュしたサービスや一度もデプロイされていないサービスは、自動では再ビルドされません。ランタイムのみ のフィールド — startCommand、preDeployCommand、containerPort、watchPatterns — を変更しても、自動で再ビルドは されません。これは次回のデプロイ時にのみ反映されます。

service set のたびに反射的に redeploy を続けて実行しがちですが、それが意味を持つのはランタイムのみのフィールドに対してだけです。

考えられる解決策

変更したフィールドの種類を確認する

再ビルドのトリガー一覧表を参照してください。ビルドフィールドで、サービスが稼働中だった場合、再ビルドはすでに始まっています。追加では何もしないでください。サービスがクラッシュしていたか、一度もデプロイされていなかった場合は、lizard redeploy を 1 回実行してください。

lizard events   # is a build already running?

ランタイムのみの変更後にだけ redeploy する

lizard service set api --set startCommand="node server.js"
lizard redeploy --service api   # needed here — startCommand doesn't auto-rebuild

関連項目

更新日