使用 Capistrano 自动部署而不保留旧版本

Auto deployment using capistrano without keeping old releases

第一次尝试自动部署。当前,当我部署到服务器时,capistrano 将所有版本和 symlinkc current 文件夹保持为最新版本。所以我实际上得到了我的应用程序 /var/www/my_app/current 的路径并且我在 /var/www/my_app/releases 中有所有其他版本 我想知道是否有一种方法只有一个版本所以我不会有像 currentreleases 而我的应用程序将位于 /var/www/my_app/?

不是真的。一起破解可能是可能的,但如果您不喜欢 Cap 执行此操作的方式,我会鼓励您考虑使用其他工具。

话虽如此,您可以通过几种方式对此进行估算:

您可以将 keep_releases 设置为 1,这将确保在成功部署后删除 releases 文件夹中的所有先前版本。如果您的 space 非常有限,但您失去了回滚能力,这是 Capistrano 的标志性功能,这将很有帮助。

此外,您可以部署到另一个位置,比如 /var/www/deployments/myapp,然后 symlink /var/www/myapp/var/www/deployments/myapp/current。确保这是软 link (ln -s).

最后,您可以执行最后一个选项,但创建一个 post 部署任务以 rsync 更改而不是 symlink。