【发布时间】:2014-03-02 08:12:12
【问题描述】:
我的目标是设置我的环境,以便能够在我的本地计算机上运行 $ git push myapp master 并在 Bluehost 的 VPS 上自动部署/更新我的 RoR 应用程序。
在我的计算机 (Linux-Ubuntu) 上,RoR 应用位于:/var/www/myapp
我按照这个 GREAT 解释 tutorial 并在我的 VPS 服务器上安装了功能丰富的 git,位于 ~/git/repository/myapp
理想情况下,我部署的 RoR 应用程序将位于 Bluehost 上的 ~/rails_apps/myapp
Bluehost 自动使用 Pushion Passenger,~/public_html/myapp 文件夹和 RoR 应用程序的公共端之间有一个符号链接,位于 ~/rails_apps/myapp/public。
我被 post-receive git hook 卡住了,我没有使用 Capistrano(我应该吗?)
我一直在阅读许多具有相似目标的文档,例如this one,或this other one,我什至找到了this gem。
有不同的方法可以实现相同的目标,但我仍然感到困惑,因为我没有找到适合我需要的 post-receive 钩子示例(并且没有掌握逻辑)。
我一直在 hooks 的 git guides 特定部分,它告诉你可以做什么,但不告诉你如何做,这对除了菜鸟之外的每个人都很有用。
对场景和目标有任何帮助吗?如果我使用 Capistrano 和/或 git-rails gem 会更容易吗?其他建议?
谢谢。
补充:
您好,我现在正在使用 Capistano,但尚未达到目标。
我在 Linux 本地机器上的 /var/www/my_app 有我的应用程序。
git 存储库远程 --bare 和 --share 位于 user@myserver:/server/user/git/repository/my_app。
我想部署到 /server/user/rails_apps/my_app。
在 deploy.rb 我有
设置:应用程序,“我的应用程序”。
set :respository, "user@myserver:/server/git/repository/my_app.
设置:用户,“我的用户名”。
设置:域,“mysite.com”。
设置:scm,:git。
set_scm_command, "/server/user/bin/git"。
设置:scm_passphrase,“my_phrase”。
设置:deploy_to,“/server/user/rails_apps/my_app”。
设置:deploy_via,:remote_cache。
设置:tmp_dir,“/server/user/tmp”。
当我运行它时,告诉我:致命:没有远程配置来列出来自的引用。 你能给我一些指导吗?谢谢。
【问题讨论】:
-
是的,使用 Capistrano 会更容易。也看看米娜
标签: ruby-on-rails git bluehost