У меня есть приложение Node.js, которое автоматически развертывается в Amazon Web Service с помощью Codeship с помощью системы развертывания CodeDeploy AWS.
Во время процесса развертывания я установил в своем appspec.yml, чтобы текущее веб-приложение было остановлено. После завершения развертывания я хочу, чтобы веб-приложение было запущено снова.
os: linux
files:
- source: /
destination: /var/www/app2
hooks:
AfterInstall:
- location: bash_scripts/stop_forever.sh
runas: ec2-user
ApplicationStart:
- location: bash_scripts/start_forever.sh
runas: ec2-user
Однако мне еще не удалось добиться успешного вызова ни одного из этих сценариев из файла appspec.yml во время развертывания.
Текущая ошибка, которую я вижу в журнале агента развертывания AWS:
Error CodeScriptMissing
Script Name /var/scripts/stop_forever.sh
MessageScript does not exist at specified location: /var/scripts/stop_forever.sh
Log TailLifecycleEvent - ApplicationStop
Похоже, это относится к более старой версии файла appspec.yml, которая пыталась запустить эти сценарии в другом месте. Несмотря на то, что я изменил содержимое файла appspec.yml в развернутом пакете, это сообщение об ошибке остается неизменным при каждом развертывании.
В дополнение к файлу appspec.yml, указанному выше, я также попытался внести следующие изменения:
- Отсутствие в списке параметра runas для каждой ловушки
- Ссылка на скрипт внутри развернутого каталога
- Ссылка на скрипт вне развернутого каталога
- Если для параметра версия изначально установлено значение 0,0
К сожалению, в Интернете очень мало возможностей для устранения неполадок appspec.yml, кроме AWS документация.
Что, очевидно, я делаю неправильно?