Выполнение граблей в скрипте пользовательских данных на AWS ec2 - PullRequest
0 голосов
/ 29 марта 2012

Я пытаюсь полностью запустить приложение Rails как часть скрипта пользовательских данных, переданного в API запуска EC2 экземпляра.Сценарий устанавливает правильные ключи, загружает приложение из моего репозитория git и затем запускает несколько сценариев инициализации, начиная с:

bundle install

, который должен установить все недостающие гемы.Однако это не удается.Другие команды работают просто отлично.

Первоначальный сбой состоял в том, что он не смог найти команду bundle, я исправил это, вручную установив переменные окружения, но все же Ruby не смог найти гем bundler.

Моя проблема здесь в том, что когда я запускаю ssh (после сбоя скрипта пользовательских данных) запущенного экземпляра, программа-компоновщик работает без проблем.Это не дает мне способа отладить исходную проблему.

Под какими учетными данными выполняются пользовательские данные в ec2?Может ли это быть проблемой?Есть ли какая-то особая причина, по которой bundler нельзя вызывать из bash-скрипта?

1 Ответ

3 голосов
/ 08 сентября 2012

Вы поменяли каталоги на приложение rails?

Вы также можете попробовать просто позвонить в bundle. Если вы еще не нашли решение, я бы попробовал что-то вроде этого.

#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
...