gpt4 book ai didi

node.js - npm-start 未在 aws cloudformation 用户数据中运行

转载 作者:太空宇宙 更新时间:2023-11-04 00:01:11 24 4
gpt4 key购买 nike

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

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' ''

稍后将其与其他命令一起放入用户数据中。

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

starting node server
After starting node server

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

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

跟进

服务器未启动的原因是用户数据脚本中无法识别 npm 命令。然而,我在打包程序配置脚本中通过 nvm 安装 Node :

{
"type": "shell",
"script": "sh/install_node.sh",
"execute_command": "chmod +x {{ .Path }}; sudo bash -c '{{ .Vars }} {{ .Path }}'"
}

这是 install_node.sh 文件:

#!/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

所以现在我试图弄清楚为什么通过打包程序配置程序脚本安装 Node 不足以让 npm 在 aws cloudformation 用户数据脚本中被识别。

最佳答案

如果有人偶然发现这个问题,解决方案是将 Node 路径添加到 cloudFormation 中的 PATH 环境变量中,如下所示:

        nodejs = '\n', \
'PATH=/root/.nvm/versions/node/v6.8.0/bin:$PATH\n', \
'npm run start-dev --prefix path/to/project\n' \
'\n' ''

关于node.js - npm-start 未在 aws cloudformation 用户数据中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54655256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com