Implantar por Git usando Capistrano sem um hard reset?
-
21-08-2019 - |
Pergunta
Eu tenho um problema no momento em que estiver executando um CMS dentro de um site (Browsercms) que permite que os arquivos de usuário de upload. No entanto, cada vez que eu fazer um deploy Capistrano executa um hard reset nuking assim qualquer uploaded arquivos.
Alguém tem alguma sugestão sobre a forma de evitar que o hard reset, e apenas fazer um puxão, ou uma maneira de mover os arquivos enviados em outro lugar, sem ter que mudar o código do aplicativo?
Solução
Isto pode não ser a abordagem correta.
Você deve incluir sua pasta 'imagens' na sua .gitignore e ligar simbolicamente o $ current_release / images pasta para US $ shared / imagens.
Isto pode ser feito automaticamente em cada implantação se você colocar na sua deploy.rb:
task :link_imgs do
run "ln -s #{shared_path}/photos #{release_path}/photos"
end
after "deploy:update_code", :link_imgs
Eu fiz o mesmo com o meu CMS e funciona como um encanto
Outras dicas
Isto não cumprirem completamente os critérios de "sem ter que mudar o código do aplicativo".
No entanto, após correr em um problema semelhante Mudei minha imagem carregados de /public/images
para /public/system/images
o diretório /public/system
não é 'versionado' por cada implantação Capistrano por isso as imagens sobreviver.
Poderia ser o Capistrano 'versões' causando o problema (em vez de uma redefinição git) ?
cap deploy chamadas deploy: update e deploy: restart
deploy: update faz com que o controle de versão, coisas copiar
deploy: restart faz o verdadeiro reinício, sobrecarregá-lo em seu convenince, geralmente em sua config / deploy.rb arquivo
namespace :deploy do
desc "Softly restart the server"
task :restart, :roles => :app, :except => { :no_release => true } do
my_own.restart_recipe
end
end