하드 리셋없이 Capistrano를 사용하여 GIT에서 배포 하시겠습니까?
-
21-08-2019 - |
문제
사용자가 파일을 업로드 할 수있는 사이트 (Browsercms) 내에서 CMS를 실행하는 순간에 문제가 있습니다. 그러나 배포 할 때마다 capistrano는 하드 리셋을 실행하여 업로드 된 파일을 핵무기시킵니다.
누구나 하드 리셋을 방지하는 방법에 대한 제안이 있습니까? 애플리케이션 코드를 변경하지 않고도 업로드 된 파일을 다른 곳에 이동하는 방법 만 수행하는 사람이 있습니까?
해결책
이것은 올바른 접근법이 아닐 수도 있습니다.
.gitignore에 '이미지'폴더를 포함시키고 $ current_release/images 폴더를 $ shared/images로 Symlink해야합니다.
deploy.rb를 넣으면 모든 배포에서 자동으로 수행 될 수 있습니다.
task :link_imgs do
run "ln -s #{shared_path}/photos #{release_path}/photos"
end
after "deploy:update_code", :link_imgs
나는 내 CMS와 똑같이했고 그것은 매력처럼 작동합니다.
다른 팁
이것은 "애플리케이션 코드를 변경할 필요없이"의 기준을 충족시키지 못합니다.
그러나 비슷한 문제가 발생한 후 업로드 된 이미지를 /public/images
에게 /public/system/images
그만큼 /public/system
디렉토리는 각 Capistrano 배포에 의해 '버전'되지 않으므로 이미지가 살아남습니다.
문제를 일으키는 Capistrano '버전싱'일 수 있습니까? (git 리셋 대신)?
캡 배포 전화 배포 : 업데이트 그리고 배포 : 다시 시작합니다
배포 : 업데이트 버전을 만들고 복사합니다
배포 : 다시 시작합니다 진정한 재시작을 수행하고, 보통 귀하의 편의에서 과부하 config/deploy.rb 파일
namespace :deploy do
desc "Softly restart the server"
task :restart, :roles => :app, :except => { :no_release => true } do
my_own.restart_recipe
end
end