[英]AWS Elastic Beanstalk ebextension not executing shell script to use npm install
我需要安裝在彈性beantalk上運行的node js應用程序內部創建的單獨框架。
我嘗試將腳本放入主package.json文件中,但安裝時出現權限錯誤。
因此,我創建了一個配置文件,並嘗試從container_commands運行npm install。 它不想運行npm,因為它說命令丟失了。 我嘗試將正確的環境路徑變量添加到npm,當通過ssh手動完成該工作時可以正常工作,但是它給出了相同的錯誤,即找不到npm命令。
所以最后。
我通過ebextension創建了一個bash腳本,用於安裝應用程序,然后從container_commands運行該腳本。
腳本已正確創建,但從未運行。 如果我使用ssh進入實例並以sudo手動執行它,那么它將起作用。 該應用程序部署時沒有錯誤,但似乎從未執行過腳本,我知道這是因為從未創建過node_modules文件夾。
我不確定要在哪里在日志中查找錯誤,並且在嘗試時沒有發現任何有用的信息。
這是我的伸手可及的距離:
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"
我設法找到答案。 我的腳本有一些問題。
這是最終的腳本。
files:
"/opt/elasticbeanstalk/hooks/appdeploy/enact/00-install-application.sh":
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash
PATH=$PATH:`ls -td /opt/elasticbeanstalk/node-install/node-* | head -1`/bin
cd "/tmp/deployment/application/library/server"
npm install --production
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.