Question

Je télécharge des fichiers dans le dossier public / files d'une application Rails de manière constante via une interface Web.

Je ne veux pas les garder dans le contrôle de code source, car ils utilisent presque 2 Go. Ainsi, chaque fois que je fais un cap deploy , ces fichiers seront sauvegardés dans versions / et remplacez le répertoire par la copie originale stockée dans le référentiel.

Je me demande quel est le meilleur moyen de conserver ces fichiers sur le serveur, dans le répertoire actuel . Certaines de mes idées sont:

  • Supprimez le répertoire du contrôle de code source et remplacez-le par un lien vers un répertoire externe non géré par Capistrano.
  • Créez une tâche Capistrano pour copier le répertoire dans / tmp avant le déploiement, puis recopiez-la dans / public une fois le déploiement terminé.

Existe-t-il un moyen standard de procéder?

Était-ce utile?

La solution

Vous pouvez créer un lien symbolique dans les fichiers vers un autre répertoire de votre ordinateur, par exemple le répertoire / shared au même niveau que / current et / releases.

Check out capistrano gère les répertoires / log et / tmp.

Autres conseils

Pour le futur enregistrement, voici la tâche que je faisais auparavant avec un répertoire partagé:

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

after "deploy:update_code", :link_shared_directories   

Nous pouvons maintenant simplement utiliser: fichiers liés dans deploy.rb:

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

Dans ce cas, le fichier [rép_abaque] /shared/config/database.yml doit exister sur le serveur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top