尝试部署Node.js应用程序时,我的npm: command not found
AfterInstall脚本中出现错误post_install.sh
。我运行npm install -g pm2
的BeforeInstall脚本中有什么超级奇怪的,它运行正常,没有任何错误。
两者都以ubuntu
用户身份运行。为什么这个命令在一个CodeDeploy脚本中工作而在另一个脚本中失败?
答案 0 :(得分:5)
看起来我可以通过在脚本文件中添加以下内容来解决这个问题。
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion
希望这可以帮助别人。
答案 1 :(得分:0)
在具有ubuntu用户的ubuntu服务器中,在AfterInstall
钩子期间尝试在shell脚本中调用aws cli时遇到了同样的问题。
这是我手动执行脚本sh ecr-login.sh
时发生的事情:
# Works
$(aws ecr get-login --no-include-email --region sa-east-1)
# Works
$(/home/ubuntu/.local/bin/aws ecr get-login --no-include-email --region sa-east-1)
CodeDeploy执行时:
# Not Work
$(aws ecr get-login --no-include-email --region sa-east-1)
# Works
$(/home/ubuntu/.local/bin/aws ecr get-login --no-include-email --region sa-east-1)