我有一个有趣的问题,我有一个setup或rails项目,当以专门用于设置一切的用户(部署)身份运行时,部署/升级工作得非常好。
我正在使用codeDeploy管理部署,它使用root用户在AWS上进行部署,但是在部署过程中,由于无法找到npm命令,它无法运行相同的脚本
cd client && npm run build:client
sh: 1: npm: not found
rake aborted!
Command failed with status (127): [cd client && npm run build:client...]
如果我手动运行它以检查我也没得到任何东西
root@ip-172-31-4-141:/home/ubuntu# su deploy -c "which npm"
root@ip-172-31-4-141:/home/ubuntu#
NPM可通过部署用户使用,但我很难理解为什么root用户无法使用它
deploy@ip-172-31-4-141:/home/ubuntu$ which npm
/home/deploy/.nvm/versions/node/v7.8.0/bin/npm
任何帮助解决此问题的方法都将非常有用。
谢谢
答案 0 :(得分:0)
这里的问题是,AWS CodeDeploy在开始部署时仅加载最小环境。加载我已导出环境的所有环境变量,然后在部署阶段以该文件为源,从而解决了我的问题