🐶
Cloud runデプロイ時の「build step exited with non-zero status: 2」の対処法【Python】
はじめに
個人的なシステムで、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