我已使用<Grid.ColumnDefinitions>
<ColumnDefinition Width="7*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
将我的应用程序(PHP Buildpack)部署到生产环境中。之后我研究了更多功能和错误修正。现在我想将我的本地更改推向生产。但是当我这样做时,生产服务器上保存的所有图像(例如配置文件图像)都会在每次推送时丢失。
如何仅接管代码中的更改而不丢失生产服务器上的任何存储文件?
应该像“cf push app-name
”
答案 0 :(得分:4)
您的应用程序容器应该是无状态的。要保留数据,您应该使用提供的服务。 Swisscom Application Cloud提供S3 compatible Dynamic Storage(例如用于图片或用户头像)或不同的数据库服务(MongoDB,MariaDB和其他服务。如果需要保存用户数据,则应将其保存在其中一个服务中,而不是应用程序容器的本地文件系统中。如果您的应用无状态,您可以更轻松地迁移和扩展它。您可以找到有关如何构建应用程序以在现代云环境here中运行的更多信息。要获取有关如何将您的应用与服务结合使用的详情,请查看this link。
答案 1 :(得分:1)
来自Avoid Writing to the Local File System
在Cloud Foundry上运行的应用程序不应该将文件写入 本地文件系统的原因如下:
本地文件系统存储是短暂的。当一个应用程序实例 崩溃或停止,分配给该实例的资源是 由平台回收,包括自此以来所做的任何本地磁盘更改 应用程序已启动。重新启动实例时,应用程序将 从一个新的磁盘映像开始。虽然您的应用程序可以写本地 文件运行时,文件将在消失后消失 应用程序重启。
同一应用程序的实例不共享 本地文件系统。每个应用程序实例都在自己的独立运行 容器。因此,一个实例写入的文件对其他实例不可见 同一应用程序的实例。如果文件是临时的,这个 应该不是问题。但是,如果您的应用程序需要数据 在文件中保持跨应用程序重新启动或数据需要 要在应用程序的所有正在运行的实例之间共享, 不应使用本地文件系统。我们建议使用共享数据 为此目的,像数据库或blobstore一样的服务。
将来你的问题将会解决问题&#34;与Volume Services (Experimental)。您将拥有适用于您应用的永久磁盘。
Cloud Foundry应用程序开发人员可能需要他们的应用程序 挂载一个或多个卷以写入可靠的, 非短暂的文件系统。通过与服务经纪人和服务经纪人整合 Cloud Foundry运行时,提供商可以提供这些服务 开发人员通过自动化,自助服务和按需用户 经验。
请订阅我们的时事通讯,了解功能公告。还请监控CF社区的上游开发。