Я написал сценарий для развертывания кода в экземпляре EC2 с помощью AWS Code Deploy, мои файлы копируются в место назначения, затем запускаются мои хуки, удаляются команды, команды cd работают нормально, но когда выполняется следующая команда:
/usr/bin/node/bin/forever start /home/ubuntu/codebase/app/bin/www
Я получаю следующую ошибку, и развертывание не выполняется:
/usr/bin/env: node: Permission denied
Я установил версию узла v4.4.0, загрузив с помощью wget и затем добавив следующие пути в bashrc:
export NODEJS_HOME=/usr/share/nodejs/bin
export PATH=$PATH:$NODEJS_HOME
Я также добавил символическую ссылку:
sudo ln -s /usr/share/nodejs/
Мои хуки appspec.yml:
ApplicationStart:
- location: scripts/start_server.sh
timeout: 30
runas: ubuntu
Вопросов:
- Почему я получаю сообщение об ошибке "узел: в разрешении отказано"?
- Во-вторых, почему мне нужно указывать полный путь для npm, node, forever?
Если я перейду в соответствующий каталог: / opt / codedeploy-agent / deployment-root / ....., а затем запустил свой скрипт вручную как пользователь Ubuntu, он будет работать нормально. Хотя он запускается как sudo, выдает ту же ошибку на консоли