Я пытаюсь запустить хук AfterInstall
в моем развертывании Codedeploy, который запускает сценарий оболочки для cd в каталог моего приложения, дает пользователю права на запись, а затем запускает npm install
для установки зависимостей приложения, но я получаю следующую ошибку во время развертывания
Error CodeScriptFailed
Script Namescripts/npm-start.sh
MessageScript at specified location: scripts/npm-start.sh run as user root failed with exit code 127
Log TailLifecycleEvent - ApplicationStart
Script - scripts/npm-start.sh
[stderr]/opt/codedeploy-agent/deployment-root/dfdfdfd-c90-9f39-4ab9-bd51-e3f737003a72/d-ZID6SUV6U/deployment-archive/scripts/npm-start.sh: line 3: npm: command not found
Теперь я сталкивался с проблемами в прошлом, когда запуск от имени sudo или root с npm
вызывал проблемы, потому что он был установлен с моим пользователем ubuntu
, но даже когда я использую runas: ubuntu
в своем appspec.yml
, он запускается от имени пользователя root.
Кто-нибудь знает, в чем может быть проблема?
appspec.yml:
version: 0.0
os: linux
files:
- source: /
destination: /var/www/app/
hooks:
AfterInstall:
- location: scripts/npm-install.sh
runas: root
timeout: 300
ApplicationStart:
- location: scripts/npm-start.sh
runas: root
timeout: 60
npm-install.sh:
#!/bin/bash
cd /var/www/app
sudo chmod g+s /var/www/app
sudo chmod o-rwx /var/www/app
npm install
npm-start.sh:
#!/bin/bash
cd /var/www/app
npm start