事象
GitHubにコミットしたソースをCloud Buildを使用してGAEに自動デプロイする仕組みのFlask(Python)アプリケーションで数ヶ月前に更新した際は問題なくビルドできていたのに急にビルドエラーとなってしまいました。
※修正内容は設定変更のみ
原因
結論から言うと、Pythonのバージョン指定不足でした・・・
app.yaml
ではバージョンを指定していたもののcloudbuild.yaml
で指定したバージョンがインストールされるようです。
修正前の設定
app.yaml
runtime: python310
env: standard
:
(省略)
:
ここではpythonのバージョンをしっかりと指定しています。
cloudbuild.yaml
steps:
- name: python
entrypoint: pip
args: ['install', '-r', 'requirements.txt', '--user']
:
(省略)
:
ここではpythonのバージョンは未指定です。
Cloud Buildのログを見てみると・・・
Step #0: Status: Downloaded newer image for python:latest
最新バージョンのpythonイメージをダウンロードしていました😱
あくまでapp.yaml
はアプリケーションの設定なので、ビルドの設定であるcloudbuild.yaml
でもしっかりとバージョン指定をしないといけないということですね。
修正後の設定
cloudbuild.yaml
steps:
- name: python:3.10
entrypoint: pip
args: ['install', '-r', 'requirements.txt', '--user']
:
(省略)
:
バージョンの指定方法はこちらを参照
最後に
設定変えただけでビルド通らないとかどゆことー!とかなりハマってしまいました。。。
ちゃんとドキュメントは読まないとダメですね。