最近,我们开始着手将已建立的 Django 项目从 docker stack 转换为 Google App Engine。在此过程中,Google Cloud Build 变得派上了用场。Cloudbuild 在准备推出时会处理一些项目,尤其是应用程序的前端部分。
现在,当涉及到 python 和 Django 特定任务时,显而易见的选择是也求助于 cloudbuild。因此,我们尝试遵循 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 应用程序。
虽然第一步成功完成上述操作,但第二步失败并出现以下错误:
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?
有没有更好的方法来处理这种情况?