[英]AWS CodeDeploy Command Not Found
尝试部署 Node.js 应用程序时出现错误 npm:在我的post_install.sh
AfterInstall 脚本中npm: command not found
。 超级奇怪的是,在我的 BeforeInstall 脚本中,我运行npm install -g pm2
,它运行良好,没有任何错误。
两者都以ubuntu
用户身份运行。 为什么此命令在一个 CodeDeploy 脚本中有效而在另一个脚本中失败?
看起来我能够通过在脚本文件中添加以下内容来解决这个问题。
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
希望这可以帮助某人。
我在使用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)
我在安装后挂钩期间尝试在我的 shell 脚本中调用 aws cli 时遇到了同样的问题,在具有 ubuntu 用户的 ubuntu20 服务器中。
我已经检查了服务器 yarn/pm2/node 上的 /usr/bin/ 文件夹是否正在运行 如果没有在命令 root@ip-:/# ln -s /root/.nvm/versions/node/v16.17.0/ 下运行bin/node /usr/bin/ root@ip-:/# ln -s /root/.nvm/versions/node/v16.17.0/bin/pm2 /usr/bin/ root@ip-:/# ln -s /root/.nvm/versions/node/v16.17.0/bin/yarn /usr/bin/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.