2010-11-13 5 views
3

J'ai un problème lors du déploiement d'une application Rails sur mon serveur. Réalisation d'uneCapistrano: Problème avec les autorisations sur le déploiement

cap deploy 

Je reçois beaucoup d'erreurs, indiquant que chmod ne peut pas changer les permissions (et seulement) les fichiers objet git:

... 
** [out :: ██████████████] chmod: changing permissions of `/srv/www/kunsthof/releases/20101113162736/.git/objects/04/779c6d894bbea4c26d6e035f71cd1ab124cc90': Operation not permitted 
... 
failed: "sh -c 'chmod -R g+w /srv/www/kunsthof/releases/20101113162736'" on ██████████████ 

Les fichiers sont mis là sur lui-même Déployez , il devrait donc être possible pour l'utilisateur de déployer de modifier leurs autorisations. Des suggestions sur ce qui pourrait être le problème ici?

+0

Donc, après cette erreur, il y a beaucoup d'erreurs que chmod ne peut pas toucher les fichiers objets? Pourriez-vous aller de l'avant et être trop prudent, et afficher le propriétaire/groupe/autorisations d'un fichier objet ainsi que d'un fichier sur lequel le chmod réussit? – Cascabel

+0

Capistrano annule immédiatement le déploiement, de sorte que la destination de déploiement soit vide par la suite. Y a-t-il un moyen d'empêcher Capistrano de nettoyer automatiquement après une panne? – rausch

+0

Après l'exécution des commandes de Capistrano, je vois que les fichiers chmod se plaignent de la propriété de l'utilisateur git, alors que tous les autres appartiennent à l'utilisateur de déploiement. – rausch

Répondre

4

Généralement en cas de déploiement si vous utilisez la copie en cache, votre référentiel sera cloné dans un répertoire partagé et sera rsyncé/copié dans le répertoire de version actuel. Alors que faire face, vous devriez excluez répertoire .git et d'autres répertoires inutiles comme spec/test (qui ne vont pas utilisés dans la production) avec la variable suivante:

set :copy_exclude, [".git", "spec"] 

Avec cela, vous n'êtes pas allez copier le répertoire .git et ne devrait pas être confronté au problème d'autorisation en faisant chmod là après.

+0

Très bien . Je vous remercie! – rausch

+0

[tag: + Epic]. J'ai écrit un script de nettoyage post-déploiement juste pour gérer ce problème. Parfois, l'esprit pense plus vite que les docs peuvent être nav'd. –

Questions connexes