11
votes

Capistrano ne créera pas de communiqués

Lorsque je exécute capuchon déployé , Capistrano tentera de créer un dossier tel que $ home / sites / my_app / sorties / horodatage . Je peux voir la commande tenter de courir, mais elle ne créera pas réellement le dossier.

Je peux copier la commande directement hors de la sortie Capistrano et exécuter la commande sur SSH et cela fonctionne bien sans problèmes.

La commande regarde quelque chose alors: xxx

Pourquoi la commande échoue-t-elle à Capistrano, mais réussira à travers une borne SSH?


6 commentaires

Capistrano roule en arrière si quelque chose d'autre échoue. Pouvez-vous publier la sortie Capistrano et pendant que vous êtes dessus, la sortie du capuchon déployé: chèque?


CAP renvoie Vous souhaitez avoir toutes les dépendances nécessaires à installer à partir de CAP Déployer: chèque


Un certain nombre de choses pourraient être désactivées: le dossier est-il écritable par l'utilisateur que vous utilisez pour vous connecter au serveur? Est-ce que quelque chose d'autre échoue au script de déploiement?


Je n'ai pas encore pensé celui-ci, mais la question semble provenir du fait que le $ home / sites / my_app / sorties n'existe pas. Si vous SSH dans et créez le répertoire des publications manuellement, il résout temporairement le problème. En essayant toujours de comprendre pourquoi la casquette ne fait pas cela comme si elle a fait auparavant.


Steve: Le répertoire des publications doit être créé par déployé: configuration , que vous devrait exécuter avant le premier déploiement .


Déployer: Configuration a été supprimée de Capistrano3 Github.com/capistrano/capistrano/issues/...


3 Réponses :


22
votes

Je ne suis toujours pas sûr d'où le problème s'étend sur la ligne:

after "deploy:setup", "deploy:create_release_dir"
namespace :deploy do
  task :create_release_dir, :except => {:no_release => true} do
    run "mkdir -p #{fetch :releases_path}"
  end
end


1 commentaires

'Ensemble: Deploy_via,: Remote_cache' n'a pas aidé. Je viens de créer un dir 'Run "Mkdir -p # {Fetch: relisions_path}"' Comme ça.



0
votes

Ignorer une partie sous la lineline verte, mais je les garderai, juste pour référence pour les autres.

Le problème mentionné me passait lorsque j'utilisais Capistrano 3.9.x version. Quand j'ai rétrogradé vers la version 3.4.0 tout fonctionnait.


deuxième partie de la réponse:

Une fois que cela m'est arrivé. Les touches GITUB n'ont pas été configurées dans ~ / .ssh / .

Vous devez générer une clé SSH sur le serveur. Une fois que le fichier .pub généré dans ~ / .sssh alors vous devriez aller sur github.com (ou tout autre service) et ajoutez votre clé SSH nouvellement générée sur le Web. -Site (il devrait être trouvé sous la page Paramètres ou similaire). En outre, sur le serveur ajoutez un enregistrement approprié dans le fichier ~ / .ssh / config qui correspond à l'identification dans le script de déploiement de capistrano: xxx donc Le fichier config doit ressembler à ceci: xxx


0 commentaires

0
votes

Dans mon cas, il s'agissait d'ajouter cette ligne dans le fichier deploy.rb xxx


0 commentaires