문제

파일을 업로드하고 있습니다 public/files 웹 인터페이스를 통해 일정한 기준으로 Rails 응용 프로그램의 폴더.

거의 2GB를 사용하기 때문에 소스 제어를 유지하고 싶지 않습니다. cap deploy 해당 파일을 저장합니다 releases/ 디렉토리를 저장소에 저장된 원시 사본으로 바꾸십시오.

서버에서 해당 파일을 보관하는 가장 좋은 방법이 무엇인지 궁금합니다. current 예배 규칙서. 내 아이디어 중 일부는 다음과 같습니다.

  • 소스 컨트롤에서 디렉토리를 제거하고 Capistrano가 관리하지 않는 외부 디렉토리 링크로 바꾸십시오.
  • 배포하기 전에 디렉토리를 /tmp에 복사 한 다음 배포가 완료된 후 /tmp에 디렉토리를 복사하는 capistrano 작업을 만듭니다.

이 작업을 수행하는 표준 방법이 있습니까?

도움이 되었습니까?

해결책

컴퓨터의 다른 디렉토리에 파일을 Symlink로 만들 수 있습니다. 예를 들어 /공유 디렉토리와 동일한 수준 /현재 및 /릴리스와 동일한 수준으로 표시 할 수 있습니다.

Capistrano는 /log 및 /tmp 디렉토리를 관리합니다.

다른 팁

향후 기록의 경우, 이것은 공유 디렉토리로 수행했던 작업입니다.

task :link_shared_directories do     
  run "ln -s #{shared_path}/files #{release_path}/public/files"   
end    

after "deploy:update_code", :link_shared_directories   

이제 우리는 간단히 사용할 수 있습니다 : deploy.rb의 linked_files :

set :linked_files, %w{config/database.yml}

이 경우 [target_dir]/shared/config/database.yml 파일은 서버에 있어야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top