我一直通过 SSH 通过手动登录和运行git pull origin master
、运行迁移和预编译资产来部署我的应用程序。
现在我开始对 Capistrano 更感兴趣,所以我试了一下,我设置了一个配方,存储库指向 githubdeploy_to
和/home/myusername/apps/greatapp
服务器上的当前应用程序也已经与 Git 连接,所以我不知道为什么我必须再次在配方中指定 github url,但我运行cap deploy
它是成功的。
更改不适用,所以出于好奇,我浏览到服务器上的 app 文件夹,发现 Capistrano 创建了文件夹shared
:releases
和current
. 后者包含应用程序,所以现在我有 2 个副本,一个在/home/myusername/apps/greatapp
,另一个在/home/myusername/apps/greatapp/current
.
这是应该的吗?我必须将用户上传的内容迁移到
current
旧应用程序并销毁?Capistrano 是否在我的本地主机上拉取 repo,然后通过 SSH 上传或
pull
在服务器上运行?换句话说,有人可以概述部署的工作原理吗?Capistrano 运行
precompile:assets
吗?