使用 Capistrano 自动部署而不保留旧版本
Auto deployment using capistrano without keeping old releases
第一次尝试自动部署。当前,当我部署到服务器时,capistrano 将所有版本和 symlinkc current
文件夹保持为最新版本。所以我实际上得到了我的应用程序 /var/www/my_app/current
的路径并且我在 /var/www/my_app/releases
中有所有其他版本 我想知道是否有一种方法只有一个版本所以我不会有像 current
和 releases
而我的应用程序将位于 /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。
第一次尝试自动部署。当前,当我部署到服务器时,capistrano 将所有版本和 symlinkc current
文件夹保持为最新版本。所以我实际上得到了我的应用程序 /var/www/my_app/current
的路径并且我在 /var/www/my_app/releases
中有所有其他版本 我想知道是否有一种方法只有一个版本所以我不会有像 current
和 releases
而我的应用程序将位于 /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。