EC2 — ошибка Codedeploy NPM не найдена

Я пытаюсь запустить хук 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

person cphill    schedule 10.07.2018    source источник


Ответы (1)


Откуда вы знаете, что npm правильно установлен и настроен на вашем устройстве? В этом вопросе и этот вопрос, вы можете увидеть пользователей с похожими проблемами. Похоже, вам нужно переустановить NodeJS, чтобы снова сделать NPM счастливым.

Вы должны войти в свой ящик и попробовать запустить sudo npm install самостоятельно. Если это работает в этом сценарии, вы должны проверить свои файлы .bash*, чтобы увидеть, делаете ли вы что-нибудь, чтобы поместить npm в свой путь или что-то, что может повлиять на его работу. Если вы можете подтвердить, что ваша настройка в порядке в сценариях, отличных от CodeDeploy, вы можете специально отладить сценарий CodeDeploy, но я предполагаю, что это ваша настройка.

person EmptyArsenal    schedule 25.07.2018