2016-09-05 6 views
3

Я развернул свое приложение (PHP Buildpack) для производства с помощью cf push app-name. После этого я работал над дополнительными функциями и исправлениями. Теперь я хотел бы внести свои местные изменения в производство. Но когда я делаю это, все изображения (например, изображение профиля), которые сохраняются на рабочем сервере, теряются при каждом нажатии.Как только нажать локальные изменения, не разрушая контейнер?

Как я могу взять на себя только изменения в коде без потери каких-либо сохраненных файлов на рабочем сервере?

Это должно быть как «git pull»

ответ

4

Ваш контейнер приложение должно быть лицом без гражданства. Чтобы сохранить данные, вы должны использовать предлагаемые услуги. Облако приложений Swisscom предлагает S3 compatible Dynamic Storage (например, для изображений или пользовательских аватаров) или различные службы баз данных (MongoDB, MariaDB и другие). Если вам нужно сохранить данные пользователя, вы должны сохранить его в одной из этих служб вместо локальной файловой системы контейнера приложения. Если вы сохраните свое приложение без гражданства, вы можете легко и быстро мигрировать и масштабировать его. Вы можете найти дополнительную информацию о том, как ваше приложение должно быть структурировано для работы в современной облачной среде. here. Чтобы получить дополнительную информацию о том, как использовать приложение с услугой, пожалуйста, проверьте this link.

1

Цитата Avoid Writing to the Local File System

приложений, работающих на Cloud Foundry не должны записывать файлы в локальной файловой системе по следующим причинам:

Локальное хранение данных файловой системы недолговечен. Когда экземпляр приложения падает или останавливается, ресурсы, назначенные этому экземпляру, возвращаются , включая любые изменения локального диска, сделанные с , приложение началось. Когда экземпляр перезапускается, приложение будет начать с нового образа диска. Хотя ваше приложение может записывать локальные файлы во время его работы, файлы исчезнут после перезагрузки приложения .

Экземпляры того же приложения не делят локальную файловую систему . Каждый экземпляр приложения работает в своем изолированном контейнере . Таким образом, файл, написанный одним экземпляром, не отображается другим экземплярам того же приложения. Если файлы являются временными, это не должно быть проблемой. Однако, если вашему приложению необходимы данные в файлах для повторного запуска приложений, или для данных, необходимых для обмена данными обо всех запущенных экземплярах приложения, , не следует использовать локальную файловую систему . Для этой цели мы рекомендуем использовать общие данные , такие как база данных или blobstore.

В будущем ваша проблема будет «решена» с помощью Volume Services (Experimental). У вас будет постоянный диск для вашего приложения.

разработчики приложений Cloud Foundry может потребоваться их приложения к установить один или несколько томов, чтобы написать на надежной, без эфемерной файловой системы.Интегрируя с сервисными брокерами и во время работы Cloud Foundry , провайдеры могут предлагать эти услуги разработчикам с помощью автоматизированного пользователя с самообслуживанием и по требованию .

Подпишитесь на нашу рассылку для анонсов функций. Просьба также следить за сообществом CF для разработки в области развития.