首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >npm-在aws cloudformation用户数据中不开始运行

npm-在aws cloudformation用户数据中不开始运行
EN

Stack Overflow用户
提问于 2019-02-12 17:08:01
回答 1查看 486关注 0票数 1

我试图在aws cloudformation用户数据中运行npm,如下所示:

代码语言:javascript
复制
nodejs = '\n', \
             'echo "starting node server" > /tmp/nodejs.log\n', \
             'npm run start-dev --prefix /data/app/myProject >> /tmp/nodejs.log &\n', \
             'echo "After starting node server" >> /tmp/nodejs.log', \
             '\n' ''

这将与其他命令一起放在userdata中。

下面是执行后我在/tmp/nodejs.log中得到的内容:

代码语言:javascript
复制
starting node server
After starting node server

npm命令不会留下任何日志,服务器也不会启动。如果我在终端中运行该命令,那么服务器将成功运行。

为什么npm命令没有被执行?

跟踪

服务器没有启动的原因是由于在userdata脚本中未识别出npm命令。不过,我正在通过nvm在packer提供程序脚本中安装节点:

代码语言:javascript
复制
{
  "type": "shell",
  "script": "sh/install_node.sh",
  "execute_command": "chmod +x {{ .Path }}; sudo bash -c '{{ .Vars }} {{ .Path }}'"
}

下面是install_node.sh文件:

代码语言:javascript
复制
#!/usr/bin/env bash

#install nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash

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

#install node
nvm install 6.8.0

因此,现在我试图弄清楚为什么通过packer提供程序脚本安装节点不足以让npm在脚本中被识别。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-20 11:18:39

如果有人遇到这个问题,解决方案就是简单地将节点路径添加到cloudFormation中的path环境变量中,如下所示:

代码语言:javascript
复制
        nodejs = '\n', \
             'PATH=/root/.nvm/versions/node/v6.8.0/bin:$PATH\n', \
             'npm run start-dev --prefix path/to/project\n' \
             '\n' ''
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54655256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档