Cloud foundry 如何仅推动本地更改而不破坏容器?

Cloud foundry 如何仅推动本地更改而不破坏容器?,cloud-foundry,swisscomdev,Cloud Foundry,Swisscomdev,我已使用cf push-app-name将我的应用程序(PHP Buildpack)部署到生产环境中。在那之后,我又做了更多的功能和错误修复。现在我想把本地的变化推向生产。但当我这样做时,每次推送都会丢失保存在生产服务器上的所有图像(如配置文件图像) 如何仅接管代码中的更改而不丢失生产服务器上存储的任何文件 它应该像一个“git pull”您的应用程序容器应该是无状态的。要持久化数据,您应该使用提供的服务。Swisscom应用程序云提供了一个(例如,用于图片或用户化身)或不同的数据库服务(、等)

我已使用
cf push-app-name
将我的应用程序(PHP Buildpack)部署到生产环境中。在那之后,我又做了更多的功能和错误修复。现在我想把本地的变化推向生产。但当我这样做时,每次推送都会丢失保存在生产服务器上的所有图像(如配置文件图像)

如何仅接管代码中的更改而不丢失生产服务器上存储的任何文件


它应该像一个“
git pull

您的应用程序容器应该是无状态的。要持久化数据,您应该使用提供的服务。Swisscom应用程序云提供了一个(例如,用于图片或用户化身)或不同的数据库服务(、等)。如果需要保存用户数据,则应将其保存在这些服务之一中,而不是应用程序容器的本地文件系统中。如果你让你的应用保持无状态,你可以更容易地迁移和扩展它。您可以找到更多关于应用程序应如何构建以在现代云环境中运行的信息。要获取有关如何将应用程序与服务结合使用的更多信息,请查看。

引用自

在Cloud Foundry上运行的应用程序不应将文件写入 本地文件系统,原因如下:

本地文件系统存储是短期的。当应用程序实例 崩溃或停止时,分配给该实例的资源 由平台回收,包括自 应用程序启动了。当实例重新启动时,应用程序将 从一个新的磁盘映像开始。虽然您的应用程序可以编写本地 文件在运行时,文件将在运行后消失 应用程序重新启动

同一应用程序的实例不共享 本地文件系统。每个应用程序实例在其各自的独立环境中运行 容器。因此,由一个实例编写的文件对另一个实例不可见 同一应用程序的实例。如果这些文件是临时文件,则 这应该不是问题。但是,如果应用程序需要这些数据 在要跨应用程序重新启动或数据需要保存的文件中 要在应用程序的所有运行实例之间共享 不应使用本地文件系统。我们建议使用共享数据 用于此目的的服务,如数据库或blobstore

在将来,你的问题将被解决。你的应用程序将有一个永久磁盘

CloudFoundry应用程序开发人员可能希望他们的应用程序 装载一个或多个卷以写入可靠的, 非临时文件系统。通过与服务代理和 云铸造运行时,提供商可以向 开发人员通过自动化、自助服务和按需用户 经验

请订阅我们的时事通讯以了解功能公告。还请监控CF社区的上游发展