【问题标题】:Can a Rails app be deployed without using Heroku Toolbelt? If so, how?可以在不使用 Heroku Toolbelt 的情况下部署 Rails 应用程序吗?如果是这样,怎么做?
【发布时间】:2015-01-21 22:32:29
【问题描述】:

我想在不使用 Heroku ToolBelt 的情况下部署 rails 应用程序。可能吗?如果是这样,怎么做?我只能使用 Heroku 仪表板;我不允许使用任何其他云服务:(

我必须运行 PostgreSQL 命令、添加附加组件和设置配置变量以及我们使用 Heroku Toolbelt 在生产环境中部署应用程序的可能其他任务。

错误:

user@xx ~/Desktop/github/blog (master)
$ git push git@heroku.com:herokugui.git master
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我不想使用 Heroku Toolbelt。这就是我使用 Git 命令在 Heroku 上部署代码的原因。我无法使用 Git 命令将代码推送到 Heroku。没有工具带可以完成这项任务吗?

我的另一个问题是:有没有办法在 Heroku GUI 上运行 PostgreSQL 命令?如果有,怎么做?

【问题讨论】:

  • heroku toolbelt 有哪些问题?只需正确设置密钥
  • 我已经为此向 heroku 支持团队登记了票证。由于防火墙保护限制为“api.heroku.com”进行连接,我无法使用 heroku 工具带。这就是为什么我需要在不使用 heroku 工具带的情况下部署 rails 应用程序的替代方案。请建议我任何解决方案@МалъСкрылевъ
  • 防火墙在你的控制之下?
  • 不,IT 团队正在寻找授权 api.heroku.com,但我想在没有 heroku 工具带的情况下在 heroku 上部署应用程序?@МалъСкрылевъ
  • 只是一个问题,你从什么得知 api.heroku.com 被禁止了?

标签: ruby-on-rails git heroku


【解决方案1】:

这并不容易(就像 Heroku 工具带一样),但它是可能的。它至少涉及到挂在 Heroku 仪表板周围,因此请确保您可以访问它。

首先,您需要一把钥匙。如果您在 Linux 机器上(像我一样),那么在您的 主目录 中,您应该有一个名为 .ssh 的文件夹(它可能被隐藏,再次点击 Ctrl+H 以显示,如果Linux)和一个文件id_rsa.pub。如果没有,您需要先生成 SSH 密钥。

ssh-keygen -t rsa

这将提示您输入文件夹,默认即可,只需点击Enter,然后输入密码(两次)以保护您的密钥不被计算机上的其他人访问:无需一个未加密的密码,任何人都可以从该机器上免费获取和使用。

完成后,找到您的公钥文件:id_rsa.pub注意:不是id_rsa,它是一个私钥,你可能不想把它给任何人,它很像你未来的 Heroku 密码,除了它对于密码来说非常大。打开id_rsa.pub,你应该会看到如下内容:

ssh-rsa aWhOLELotofUnreadABLEGibbERishWHiCHiSactUALLyYourPubLIcKeY...

您需要在 Heroku 控制面板的 SSH 密钥 下将该行输入到您的帐户设置中。您可以找到更多关于密钥here, in Heroku docs 的信息。通过发出以下命令确保 Heroku 真正识别出您:

ssh -v git@heroku.com

它应该说明您已通过身份验证。

现在是git 地址。我假设您知道git 的方式,所以我会保持简短:您需要从您的应用程序名称中获取您的存储库地址。 Heroku 通常会生成奇怪的(但有些诗意的)名称,例如 falling-wind-1624shielded-fjord-1858。我将以第一个为例,这是您将其地址添加为 git remote 的方式:

git remote add heroku git@heroku.com:falling-wind-1624.git

我将在下面解释一下。所以工具带在这里所做的只是使用您的应用程序名称,它只是通过添加到 Heroku 服务器的路径以相同的方式构建 URL。完成后,您应该能够推送您的代码:

git push heroku master

我已经在上面命名了一个 Heroku 远程 heroku,这就是我在这里使用 heroku 名称的原因,你可以随意命名,然后再使用它。推送代码后,剩下的就看你自己了。

【讨论】:

  • 很棒的小指南,谢谢。我遇到的细微差别是我必须在最后一步执行git push heroku master,并且我从界面的“设置”选项卡中查找了远程地址。
  • @AsfandYarQazi 实际上,是的,他们很久以前就将它添加到了仪表板中。我编辑了最后一个命令以包含分支名称,因为让git 猜测远程分支需要对git 的一些了解。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-20
  • 2023-04-10
  • 2023-04-07
  • 2011-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多