gpt4 book ai didi

ruby-on-rails - 使用 Capistrano 部署时保留未版本控制的文件

转载 作者:行者123 更新时间:2023-12-04 05:00:59 25 4
gpt4 key购买 nike

每次我在远程服务器上运行 cap deploy 时,我都会丢失一些未版本控制的文件,因为 capistrano 会创建一个新目录并检查其中的 head 修订。但是有些文件没有版本化,例如用户头像(回形针)和上传的图像,它们不会被复制到新的当前版本中。

我该如何解决这个问题?

谢谢!

最佳答案

就个人而言,我认为处理这类事情的最佳方法是将它们存储在共享文件夹中,并在 capistrano 中创建一个任务来创建指向共享 Assets 的符号链接(symbolic link)。

这是我的一个项目中的一个示例:

set :shared_assets, %w{public/images/products public/images/barcodes}

namespace :assets do
namespace :symlinks do
desc "Setup application symlinks for shared assets"
task :setup, :roles => [:app, :web] do
shared_assets.each { |link| run "mkdir -p #{shared_path}/#{link}" }
end

desc "Link assets for current deploy to the shared location"
task :update, :roles => [:app, :web] do
shared_assets.each { |link| run "ln -nfs #{shared_path}/#{link} #{release_path}/#{link}" }
end
end
end

before "deploy:setup" do
assets.symlinks.setup
end

before "deploy:symlink" do
assets.symlinks.update
end

关于ruby-on-rails - 使用 Capistrano 部署时保留未版本控制的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4648180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com