我正在更新Heroku上的环境,我们使用的buildpack之一是基于Ruby的,默认情况下,new heroku-22
environment/stack中不再提供Ruby(我们的PHP应用程序也不需要Ruby)。
从文档中:
[...]最终用户应该在所讨论的构建包之前添加Ruby构建包(他们还需要确保存在最少的Gemfile
/Gemfile.lock
文件,以便Ruby构建包通过检测)。
然而,我不知道这些文件应该包括什么,因为我对Ruby没有任何经验。什么是一个有效的最小Gemfile
集来触发Ruby在Heroku上的安装?
2条答案
按热度按时间7d7tgy0s1#
我建议你根本不要使用那个构建包,它太旧了,而且第三方构建包总是有点问题,即使这只是因为它们经常停止更新。
以下是它声称要做的:
这是一个Heroku buildpack,只用于出售
mysql-client-core
deb包中的mysql
二进制文件。如果您只需要一个
mysql
二进制文件,那么您可以使用the apt buildpack来安装它,而不用担心Ruby或类似的东西。1.将其添加为您的第一个构建包:
1.在项目的根目录中创建一个
Aptfile
,其中列出了您希望安装的the Ubuntu packages,例如:请注意,构建包不会解析依赖项。如果您列出的任何包都有自己的依赖项,您可能必须显式列出它们。
1.提交并重新部署。
您应该会看到列出的Ubuntu软件包在主构建包运行之前安装完毕。
在任何情况下,如果您真的想让应用程序与Ruby构建包兼容,那么您应该能够在项目的根目录中包含一个空的
Gemfile
:只有当应用程序的根目录中有
Gemfile
时,Heroku Ruby支援才会套用至应用程序。即使应用程序没有gem相依性,它也应该包含空白的Gemfile
,以记录您的应用程序没有gem相依性。不需要
Gemfile.lock
。请注意,您需要manually add the buildpacks you require。我相信您首先需要Ruby,然后是问题中的MySQL构建包,然后是应用程序所用的任何语言,看起来像是PHP:
wswtfjt72#
看起来一个空的
Gemfile
是不够的,而实际上需要一个Gemfile.lock
as well:如果您的应用在根目录中有
Gemfile
和Gemfile.lock
文件,则构建包会将其检测为Ruby。经过一些试验和错误,我发现以下文件似乎工作:
第一个