Оказывается, это неправильный способ использования эластичного beanstalk . Приложение будет запущено, но это будет скорее взлом, чем правильное решение.
Я развертываю приложение PHP, используя следующую настройку:
Сценарий PHP, который должен выполняться на обработчике после развертывания как фоновая задача, никогда не перестает работать. Это эффективно забивает трубопровод.
Снимок экрана, на котором конвейер работает вечно (остановлен намеренно)
Конвейер Bitbucket проверяет состояние работоспособности приложения AWS Elastic Beanstalk.
Вот код файла конфигурации .ebextensions.
container_commands:
01-create_post_hook:
command: "mkdir -p /opt/elasticbeanstalk/hooks/appdeploy/post"
ignoreErrors: true
files:
"/opt/elasticbeanstalk/hooks/appdeploy/post/start.sh":
mode: "000770"
owner: root
group: root
content: | #!/bin/bash
echo "--------Starting Runner------------"
php /var/app/current/runner.php &
Поскольку сценарий, который должен выполняться в фоновом режиме, на самом деле никогда не завершается, состояние работоспособности приложения всегда остается на уровне «информация». Это проблема, поскольку для успешного развертывания приложения требуется состояние «ОК».
Работоспособность приложения застряла на «Информация», а не на «ОК»
Подобные вопросы я нашел в Интернете:
https://forums.aws.amazon.com/thread.jspa?threadID=301439&tstart = 0 https://forums.aws.amazon.com/thread.jspa?messageID=425130
Обычно для этого мы используем инструменты CI / CD (непрерывная интеграция / непрерывная доставка), такие как Jenkins, CircleCI или Bamboo. Они могут получить веб-перехватчик от Bitbucket, который запускает любые задачи, такие как вызов PHP-скрипта, запуск bash-скрипта, запуск raketask и т. Д.