2017-09-25 7 views
0

Je tente de déployer une application Rails à partir d'une machine de développement Windows vers un VPS Debian 9 en utilisant Capistrano, Passenger et RVM. J'ai RVM et Passenger mis en place avec Apache sur le VPS et Capistrano mis en place sur la machine Windows. Cependant, lorsque je tente de lancer cap production deploy, je reçois l'erreur suivante:Capistrano: bundler: impossible de charger la commande: rake

bundler: failed to load command: rake (/var/www/APPNAME/shared/bundle/ruby/2.4.0/bin/rake)

Une bizarrerie de se développer sur Windows est que le Gemfile.lock doit être modifié sur le déploiement pour supprimer les versions Windows spécifiques de pierres précieuses. J'ai écrit une tâche personnalisée pour effectuer cette action, qui semble fonctionner comme prévu.

Voici quelques fichiers qui pourraient être utiles:

+0

Avez-vous vérifié si '/ var/www/APPNAME/shared/paquet/ruby ​​/ 2.4.0/bin/rake' existe sur le VPS? Et votre utilisateur capistrano ssh est-il dans le groupe rvm? Est-ce que votre configuration capistrano source de l'environnement rvm avant d'essayer d'appeler les scripts ruby? –

+0

J'ai vérifié et le fichier existe. Il n'y a pas de groupe appelé "rvm" sur le VPS; rvm est installé dans le répertoire personnel de l'utilisateur ssh. J'utilise la gem capistrano-rvm et la commande source est dans le bashrc de l'utilisateur ssh, donc je pense que l'environnement est en cours de chargement. –

+0

Je suggère de tester cette hypothèse, RVM est très fragile. –

Répondre

0

Le problème a été résolu après avoir rétrogradé Bundler à la version 1.12.5 (il était auparavant la version 1.15.4). Je suppose qu'il y a une sorte de conflit avec ma configuration et les versions plus récentes de Bundler; mais jusqu'à ce que le problème sous-jacent est corrigé, je vais continuer à utiliser l'ancienne version.