gpt4 book ai didi

python - 在 GCP Cloud-Build 上构建 Django 项目

转载 作者:行者123 更新时间:2023-12-01 01:23:16 25 4
gpt4 key购买 nike

最近,我们开始致力于将已建立的 Django 项目从 docker 堆栈转换为 Google App Engine。在此过程中,Google Cloud Build 派上了用场。 Cloudbuild 负责准备推出的一些项目,特别是应用程序的前端部分。

现在,当涉及到 python 和 Django 特定任务时,显而易见的选择是也求助于 cloudbuild。因此,我们尝试遵循 Google 通过其官方 NPM 云构建器解释的模式 ( here )

我们面临的问题如下。使用官方 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?

有没有更好的方法来处理这种情况?

最佳答案

/workspace 目录之外的任何内容在构建之间都不会保留,因此您正在安装的要求不会进入第二步。来自 "Creating Custom Build Steps" :

A custom build step runs with the source mounted under /workspace, and is run with a working directory somewhere in /workspace. Any files left in /workspace by a given build step are available to other build steps, whether those steps are run concurrently or subsequently.

解决此问题的一种方法是将它们安装到当前目录中:

- name: 'python:3.7'                                                                                                                               
entrypoint: python3
args: ['-m', 'pip', 'install', '-t', '.', '-r', 'requirements.txt']
- name: 'python:3.7'
entrypoint: python3
args: ['./manage.py', 'collectstatic', '--noinput']

类似地,还可以创建一个虚拟环境并为需要安装依赖项的每个步骤激活它。

关于python - 在 GCP Cloud-Build 上构建 Django 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53580952/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com