繁体   English   中英

找不到 AWS CodeDeploy 命令

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM