🐶

Cloud runデプロイ時の「build step exited with non-zero status: 2」の対処法【Python】

2024/03/23に公開

はじめに

個人的なシステムで、Google Cloud Build を使って Cloud run へのビルド&デプロイを行っている際に、ビルドステップで以下のエラーが出た場合の対処法をまとめました。

ERROR: build step 0 "gcr.io/cloud-builders/docker" failed: step exited with non-zero status: 2

原因と対処法

結論としては、pip install が長くなってしまった際のタイムアウトが原因ぽいですが、そのタイムアウトの原因は、中途半端に google cloud のライブラリのバージョンが指定されていることが原因みたいです。以下は変更前後の例です。

変更前
google-cloud-firestore
google-cloud-logging
google-cloud-translate==2.0.1
google-cloud-texttospeech
変更後
google-cloud-firestore==2.15.0
google-cloud-logging==3.10.0
google-cloud-translate==3.15.3
google-cloud-texttospeech==2.16.3

端的に対処法としては、中途半端にバージョンを指定せず、全てのライブラリのバージョンを指定するか、全てのライブラリのバージョンを指定しないかのどちらかにすることです。

そもそもメッセージをよく見てると、以下のようなメッセージが出ていました。そもそも google-api-python-client のバージョンが複数発見されて、探索に時間がかかってることなんですかね。

INFO: pip is looking at multiple versions of google-api-python-client to determine which version is compatible with other requirements. This could take a while.

おわりに

エラー文から類似が出てこなかったですが、個人的な感覚としてビルド時のエラー原因のほとんどはタイムアウトだと思っていたので、運良く当たった感じです。INFO メッセージもよく読めってことですね。

リバナレテックブログ

Discussion