У нас есть приложение NodeJS Cloud Foundry с включенным конвейером доставки DevOps.Мы пытаемся обновить наш сценарий развертывания, чтобы позволить нам развертывать обновления приложений без простоев.Теперь у нас есть скрипт, который в основном работает (см. Ниже).
Однако мы понимаем, что во время развертывания наше приложение запустится дважды.Что нам нужно изменить в скрипте, чтобы произошла только одна инициализация сервера?Вот сценарий:
#!/bin/bash
# Push app
if ! cf app $CF_APP; then
cf set-env "${CF_APP}" NODE_ENV development
cf set-env "${CF_APP}" HOST_NAME bluemix
cf push $CF_APP
else
OLD_CF_APP=${CF_APP}-OLD-$(date +"%s")
rollback() {
set +e
if cf app $OLD_CF_APP; then
cf logs $CF_APP --recent
cf delete $CF_APP -f
cf rename $OLD_CF_APP $CF_APP
fi
exit 1
}
set -e
trap rollback ERR
cf rename $CF_APP $OLD_CF_APP
cf push $CF_APP
cf set-env "${CF_APP}" NODE_ENV development
cf set-env "${CF_APP}" HOST_NAME bluemix
cf restage ${CF_APP}
cf delete $OLD_CF_APP -f
fi