Twelve-Factor App宣言说它适用于 Web 应用程序,“......与底层操作系统有一个干净的合同,在执行环境之间提供最大的可移植性”[强调由我添加]
但后来它说:
十二因素应用程序也不依赖于任何系统工具的隐含存在。例子包括炮击到
ImageMagick
或curl
。虽然这些工具可能存在于许多甚至大多数系统上,但无法保证它们将存在于未来可能运行该应用程序的所有系统上,或者未来系统上的版本是否与该应用程序兼容。如果应用程序需要使用系统工具,则应将该工具出售到应用程序中。
他们之前将“供应商”定义为:
范围为包含应用程序的目录(称为“供应商”或“捆绑”)。
例如,当(至少在 Linux 上)本机 64 位可执行文件不能在 32 位环境中运行时,应该如何做到这一点——更不用说在其他操作系统上运行了?还是有更好的方法来处理这个可移植性问题?