В файле appspec я определил следующее:
hooks:
AfterInstall:
- location: afterInstall.sh
Ниже приводится содержимое afterInstall.sh (я пытаюсь вызвать файл php из файла sh) -
php afterInstall.php
Оба файла afterInstall.sh и afterInstall.php находятся на одном уровне (внешнем уровне) в zip-архиве, который я загружаю на S3 -
appspec.yml
afterInstall.sh
afterInstall.php
Я получаю следующую ошибку -
Error Code ScriptFailed
Script Name afterInstall.sh
Message Script at specified location: afterInstall.sh failed with exit code 1
Log Tail LifecycleEvent - AfterInstall
Script - afterInstall.sh
[stderr]Could not open input file: afterInstall.php
Я также попытался добавить следующее в раздел разрешений файла apppsec:
permissions:
- object: .
pattern: "**"
owner: sandeepan
group: sandeepan
mode: 777
type:
- file
Примечание. У меня есть учетные данные для экземпляров развертывания, использующих пользователя sandeepan
.
Я немного смущен тем, что именно делает раздел разрешений. Из http://docs.aws.amazon.com/codedeploy/latest/userguide/app-spec-ref-permissions.html,
В разделе разрешений указывается, как специальные разрешения, если таковые имеются, должны применяться к файлам и каталогам / папкам в разделе файлов после их копирования в экземпляр.
Я также попытался указать владельца / группу как root / root и runas: root против ловушки afterInstall, но все равно получал ту же ошибку.
Обновить
Я также попытался указать файл afterInstall.php в разделе файлов и убедиться, что его права и права собственности верны -
- source: afterInstall.php
destination: /var/cake_1.2.0.6311-beta
На /var/cake_1.2.0.6311-beta -
-rwxrwxr-x 1 sandeepan sandeepan 26 Aug 1 08:55 afterInstall.php
Я не знаю, что еще нужно сделать, чтобы это исправить.
Примечание. Я могу успешно выполнить развертывание, если не вызываю файл php из afterInstall.sh