heroku - Heroku 中 buildpack 和 slug 编译器之间的关系

标签 heroku

现在正在搜索Heroku,这是一个著名的Paas平台。这里有一个关于内部结构的问题,特别是 buildpack 和 slug 编译器之间的关系。 在公开声明中,

“Buildpacks 负责将部署的代码转换为 slug,然后可以在 dyno 上执行。Buildpacks 由一组脚本组成,根据编程语言,脚本将检索依赖项、输出生成的 Assets 或编译后的代码等等。此输出由 slug 编译器组装成一个 slug。”

而在PACKT enterprise出版的介绍Heroku细节的书《Leaning Heroku Postgres》中,作者说“slug是由slug编译器创建的,其核心是称为buildpack的脚本集合。”

那么,buildpack 在 Heroku 中做了什么?在前一个语句中,它应该将已部署的应用程序转换为 slug,而在后一个语句中,buildpack 是 slug 编译器的核心,它应该创建一个 slug。 哪个创建 slug,buildpack 或 slug 编译器?

最佳答案

在 Heroku 中,buildpack 生成 slug。它是“slug 编译器”。不过,我认为您对此处的术语有些了解。

Heroku 的工作方式非常简单:

  • 当您将代码推送到 Heroku 时,buildpack 会运行并安装依赖项、缓存静态 Assets 等。
  • 然后 buildpack 将所有这些放入 Amazon S3 上本质上是一个 zip 文件。
  • 当 dyno 启动时,Heroku 从 S3 下载 zip 文件以及所需的一切(您的应用程序依赖项、源代码等),然后启动服务器。

基本上就是这样!

关于heroku - Heroku 中 buildpack 和 slug 编译器之间的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41593670/

相关文章:

django - 从 Heroku 上托管的 Django 项目的子目录运行非 Django 命令?

ruby-on-rails - Rails 6 应用程序未部署到 Heroku

ruby-on-rails - Heroku/Rails/Devise : The change you wanted was rejected

css - 为什么 CSS 在发送 HTML 电子邮件时不起作用?

heroku - 如何在heroku中阻止工头?

Node.js:是否有可能捕获 "TypeError"并保持服务器正常运行?

python - 有没有办法在我使用 python-selenium 的同时在 heroku 上使用 chrome 驱动程序?

heroku - 使用 snapd :command not found 在 archlinux 上安装 Heroku cli

java - Heroku 中的数据库模式

mysql - Heroku Node.js 应用程序无法启动