Heroku构建包仅在临时管道中触发,而不在产品特性中触发?还是配置错误?

s4chpxco  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(75)

我已经在我的两个Heroku Django项目的build pack部分特别包含了heroku/python,但是只有当我通过将我在main git分支中的更改推送到暂存管道来部署时,才会触发build pack,而不是当我将更改提升到生产时。为什么?
我的构建不是有状态的(Heroku在他们的设计考虑文档中提到的)。我的意思是我可以在Heroku Jmeter 板中处理所有的配置变量,一组变量用于staging,另一组变量用于production。没有硬编码的变量。我的所有配置都是动态的。
我看到的问题是,当我用更新版本的Python模块/库更新我的requirements.txt时,我如何指示Heroku在prod中触发回建来重建slug?我是否错误地配置了Heroku生产流水线?或者是因为某种原因没有必要在prod中重建slug,而只是在staging中重建?
当我在这里输入问题的标题时,Stack Overflow推荐了以下问题和其他用户的答案,但这些问题和答案似乎没有回答我的问题:

yfwxisqw

yfwxisqw1#

我看到的问题是,当我用更新版本的Python模块/库更新我的requirements.txt时,我如何指示Heroku在prod中触发构建回以重建slug?
为什么要在从开发环境升级到生产环境时更新依赖项呢?开发环境的全部意义在于预览您计划在生产环境中运行的代码。预览 * 不同 * 的代码会为奇怪的bug打开大门。
如果您要升级程式库,请先在开发机器上执行,并确定它的行为符合您的预期。然后部署到暂存并再次测试。最后,将暂存Slug升级到生产环境。
这就是Heroku管道的工作方式(着重号为后加):
管道让你可以定义你的代码如何从一个环境流到下一个环境。例如,你可以将代码部署到你的开发应用(它将它构建到一个slug中),然后将同一个slug提升到生产环境中。这个提升流 * 确保生产环境中包含的代码与你在开发环境中测试的代码完全相同,而且比重建slug* 快得多。
请注意,应用程序slug包括依赖项和您自己的代码。如果临时构建引入了新的依赖项,则这些相同的依赖项将与您更新的代码一起提升到生产环境。

相关问题