Мне нужно установить отдельную структуру, которую я создал внутри своего приложения node js, работающего на эластичном beanstalk.
Я пытался поместить скрипты в свой основной файл package.json, но при его установке получаю ошибки прав доступа.
Поэтому я создал файл конфигурации и попытался запустить npm install из container_commands. Он не хотел запускать npm, так как сказал, что команда отсутствует. Я попытался добавить правильные переменные пути среды в npm, которые работают, если сделать это вручную через ssh, но выдал ту же ошибку, что не смог найти команду npm.
Итак, наконец.
Я создал bash-скрипт через расширение ebextension, которое устанавливает приложение, и я запускаю этот скрипт из 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"