我想在不使用Heroku ToolBelt的情况下部署rails app。可能吗?如果是这样,怎么样?我只允许使用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命令?如果是这样,怎么样?
答案 0 :(得分:8)
这并不容易(与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-1624
或shielded-fjord-1858
。我将以第一个为例,这是你如何将其地址添加为git remote:
git remote add heroku git@heroku.com:falling-wind-1624.git
我将在下面解释一下。那么工具带在这里做的是仅使用您的应用程序名称,它只是通过添加Heroku服务器的路径以相同的方式构建URL。完成后,您应该能够推送代码:
git push heroku master
我在上面命名了一个Heroku远程heroku
,这就是我在这里使用heroku
名称的原因,您可以随意命名并随后使用它。一旦你推动了代码,剩下的就由你决定了。