Elastic Beanstalk で実行されているノード 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"