我需要安装一个单独的框架,该框架是我在弹性 beantalk 上运行的节点 js 应用程序中创建的。
我尝试将脚本放在我的主 package.json 文件中,但安装时出现权限错误。
所以我创建了一个配置文件并尝试从 container_commands 运行 npm install。它不想运行 npm,因为它说命令丢失。我尝试将正确的环境路径变量添加到 npm,它在通过 ssh 手动完成时工作,但它给出了相同的错误,即找不到 npm 命令。
所以最后。
我通过安装应用程序的 ebextension 创建了一个 bash 脚本,然后从 container_commands 运行该脚本。
该脚本被正确创建但从未运行。如果我 ssh 进入实例并作为 sudo 手动执行它,它就可以工作。该应用程序部署没有错误,但似乎从未执行脚本,我知道这一点,因为从未创建 node_modules 文件夹。
我不确定在我的日志中在哪里寻找错误,当我尝试时,我没有发现任何有用的东西。
这是我的 ebextension:
files:
"/tmp/install_application.sh":
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash
export PATH=$PATH:`ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin
eval "cd /var/app/current/library/server && npm install --production"
eval "cd /var/app/current && npm install --production"
container_commands:
00-install-application:
command: "sh /tmp/install_application.sh"