【问题标题】:Auto deployment using capistrano without keeping old releases使用 capistrano 自动部署而不保留旧版本
【发布时间】:2015-12-01 09:05:58
【问题描述】:
这是我第一次尝试进行自动部署。目前,当我部署到服务器时 capistrano 将所有版本和 symlinkc current 文件夹保留为最新版本。所以我实际上得到了我的应用程序/var/www/my_app/current 的路径,并且我在/var/www/my_app/releases 中有所有其他版本我想知道是否有办法只有一个版本,所以我不会有像current 和@ 这样的目录987654325@ 和我的应用程序只会放在/var/www/my_app/ 中?
【问题讨论】:
标签:
capistrano
capistrano3
【解决方案1】:
不是真的。可能可以一起破解,但是如果您不喜欢 Cap 这样做的方式,所涉及的工作会让我鼓励您查看其他工具。
话虽如此,您可以通过以下几种方式进行近似:
您可以将keep_releases 设置为1,这将确保在成功部署后删除releases 文件夹中的所有先前版本。如果您的空间非常有限,但您无法回滚,这将很有帮助,这是 Capistrano 的标志性功能。
此外,您可以部署到另一个位置,比如/var/www/deployments/myapp,然后将/var/www/myapp 符号链接到/var/www/deployments/myapp/current。确保这是一个软链接 (ln -s)。
最后,您可以执行最后一个选项,但创建一个部署后任务来同步更改而不是符号链接。