2012-03-29 2 views
0

Je tente de lancer complètement mon application Rails dans le cadre du script de données utilisateur transmis à l'API EC2 de l'instance de lancement. Le script définit les clés appropriées, télécharge l'application de mon git, et il doit exécuter des scripts d'initialisation, en commençant par le:Exécution de tâches rake dans un script de données utilisateur sur AWS ec2

bundle install 

qui doit installer toutes les gemmes manquantes. Cependant, cela échoue. Les autres commandes fonctionnent très bien.

L'échec d'origine était qu'il ne pouvait pas trouver la commande bundle, j'ai résolu cela en définissant manuellement les variables d'environnement, mais toujours Ruby n'a pas pu trouver la gemme bundler.

Mon problème ici est que lorsque je ssh (une fois que le script de données utilisateur a échoué) à l'instance lancée, le bundler fonctionne sans problème. Cela ne me donne aucun moyen de déboguer le problème original.

Sous quelles informations d'identification les données utilisateur sont-elles exécutées dans ec2? Cela peut-il être le problème? Y at-il une raison particulière pour laquelle bundler ne peut pas être appelé à partir d'un script bash?

Répondre

3

Avez-vous changé les répertoires en application rails?

Vous pouvez également essayer d'appeler le bundle. Si vous n'avez pas encore trouvé de solution, j'essaierais quelque chose comme ça.

#Pipe stdout and stderr to a log file. 
exec &> /home/ubuntu/startup.log 

DIR=/home/ubuntu/[rails app] 

echo "[START UP] change directory: " $DIR 
cd $DIR 

echo "[START UP] Update code" 
sudo -u ubuntu git pull origin master 

echo "[START UP] Bundling latest codebase" 
bundle 
+0

Pas exactement une solution, mais a conduit à cela :) – zmilojko

+0

@zmilojko alors quelle était la solution? – Sixty4Bit

Questions connexes