最近、確立された Django プロジェクトを Docker スタックから Google App Engine に変換する作業を開始しました。途中、Google Cloud Build が便利になりました。Cloudbuild は、展開の準備としていくつかの項目、特にアプリケーションのフロント エンド部分を処理します。
Python および Django 固有のタスクに関しては、クラウドビルドも使用することが当然の選択です。したがって、Google が公式の NPM クラウド ビルダーで説明しているパターンに従おうとしました (こちら) 。
私たちが直面している問題は次のとおりです。公式の python イメージでビルドする場合、ビルドステップは次のように設定されます。
steps:
[...]
8 - name: 'python:3.7'
9 entrypoint: python3
10 args: ['-m', 'pip', 'install', '-r', 'requirements.txt']
11 - name: 'python:3.7'
12 entrypoint: python3
13 args: ['./manage.py', 'collectstatic', '--noinput']
これは、すべての要件をインストールする最初のステップでは問題なく機能します。GAE はアプリケーションをデプロイするときにもこれを行いますが、ここではアップロードする前に、リポジトリとインストールされた django アプリから staticを収集する必要があります。
最初のステップは上記で成功しますが、2 番目のステップは次のエラーで失敗します。
File "./manage.py", line 14, in <module>
) from exc
ImportError: Couldn't import Django. Are you sure it's installed and
available on your PYTHONPATH environment variable? Did you forget to
activate a virtual environment?
この状況にアプローチするより良い方法はありますか?