【问题标题】:Heroku wrongly detecting my Node app as a Ruby appHeroku 错误地将我的 Node 应用程序检测为 Ruby 应用程序
【发布时间】:2012-04-17 23:43:48
【问题描述】:

我有一个 Node 项目,它使用 Bundler 和 Guard 来处理我的预编译步骤。 这意味着我的项目根目录中有一个 Gemfile 以及 package.json 文件。

我的问题是 Heroku 认为我的项目是一个 Ruby 应用程序,只是因为 Gemfile 存在。并抱怨我没有提交我不想提交的 Gemfile.lock。

-----> Heroku receiving push
-----> Ruby app detected
 !
 !     Gemfile.lock is required. Please run "bundle install" locally
 !     and commit your Gemfile.lock.
 !
 !     Heroku push rejected, failed to compile Ruby app

有没有办法告诉 Heroku 该应用是 Node 应用而不是 Ruby 应用?

【问题讨论】:

  • 我觉得你应该问问heroku的支持。
  • 我想,我应该直接这样做。不过,我想我会在这里得到更快的答案:)

标签: ruby node.js heroku


【解决方案1】:

在 Heroku 支持的大力帮助下,解决方案是:使用构建包!

通过在 BUILDPACK_URL 配置变量中指定自定义构建包来覆盖 Heroku 默认构建包

$ heroku config:add BUILDPACK_URL=https://github.com/heroku/heroku-buildpack-nodejs

您还可以在应用创建期间指定构建包

$ heroku create -s cedar --buildpack https://github.com/heroku/heroku-buildpack-nodejs

当你知道它时很简单。更多文档可以在at Heroku Dev Center找到

【讨论】:

  • 在 andersjanmyr 指出的 Heroku 开发中心链接上,他们在表格中按特定顺序排列了 buildpack,他们说:“默认情况下,这些 buildpack 将按此顺序搜索,直到匹配检测到并用于编译您的应用程序。”
【解决方案2】:

似乎有一种新方法可以做到这一点,因为BUILDPACK_URL 现在已弃用,解释为here,但基本上命令是:

$ heroku buildpacks:set heroku/nodejs

您还可以在应用创建期间指定构建包:

$ heroku create myapp --buildpack heroku/nodejs

【讨论】:

    猜你喜欢
    • 2017-01-30
    • 1970-01-01
    • 2012-08-30
    • 2017-11-12
    • 2013-08-25
    • 1970-01-01
    • 1970-01-01
    • 2016-06-19
    • 2020-07-31
    相关资源
    最近更新 更多