我编写了一个脚本,用于使用AWS Code Deploy将代码部署到EC2实例,我的文件被复制到目标,然后我的钩子运行,删除命令,cd命令运行正常,但是当运行以下命令时:
/usr/bin/node/bin/forever start /home/ubuntu/codebase/app/bin/www
我收到以下错误,部署失败:
/usr/bin/env: node: Permission denied
我已经使用wget下载并随后将以下路径添加到bashrc来设置节点版本v4.4.0:
export NODEJS_HOME=/usr/share/nodejs/bin
export PATH=$PATH:$NODEJS_HOME
我还添加了一个符号链接:
sudo ln -s /usr/share/nodejs/
我的appspec.yml挂钩:
ApplicationStart:
- location: scripts/start_server.sh
timeout: 30
runas: ubuntu
问题:
如果我转到相应的目录:/ opt / codedeploy-agent / deployment-root / .....然后手动运行我的脚本作为Ubuntu用户,它可以正常工作。虽然将其作为sudo运行,但在控制台
上会出现相同的错误答案 0 :(得分:0)
service命令删除了大多数环境变量。因此,变量NODEJS_HOME将无法用于start_server.sh。您可以尝试在/ etc / profile中设置环境变量。代理在启动时提供源。
希望这能解决问题。
谢谢, Amartya Datta Gupta