У меня есть приложение 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 для каждого крючка
- Ссылка на script внутри развернутого каталога
- Ссылка на script вне развернутого каталога
- У параметра версия изначально установлено значение 0.0
К сожалению, очень мало он-лайн с точки зрения устранения проблем appspec.yml, кроме документации AWS.
Какая очевидная вещь я делаю неправильно?