3

を使用してアプリ (PHP Buildpack) を本番環境にデプロイしましたcf push app-name。その後、さらなる機能追加とバグ修正に取り組みました。ここで、ローカルの変更を本番環境にプッシュします。しかし、これを行うと、本番サーバーに保存されているすべての画像 (プロファイル画像など) がプッシュごとに失われます。

運用サーバーに保存されているファイルを失うことなく、コードの変更のみを引き継ぐにはどうすればよいですか?

git pull" "のようになるはずです

4

2 に答える 2

1

ローカル ファイル システムへの書き込みを避けるからの引用

Cloud Foundry で実行されているアプリケーションは、次の理由により、ローカル ファイル システムにファイルを書き込むべきではありません。

ローカル ファイル システム ストレージは短命です。アプリケーション インスタンスがクラッシュまたは停止すると、そのインスタンスに割り当てられたリソースは、アプリの開始以降に行われたローカル ディスクの変更を含め、プラットフォームによって回収されます。インスタンスが再起動されると、アプリケーションは新しいディスク イメージで開始されます。アプリケーションは実行中にローカル ファイルを書き込むことができますが、ファイルはアプリケーションの再起動後に消えます。

同じアプリケーションのインスタンスは、ローカル ファイル システムを共有しません。各アプリケーション インスタンスは、独自の分離されたコンテナーで実行されます。したがって、あるインスタンスによって書き込まれたファイルは、同じアプリケーションの他のインスタンスからは見えません。ファイルが一時的なものである場合、これは問題になりません。ただし、アプリケーションが再起動後もファイル内のデータを保持する必要がある場合、またはアプリケーションの実行中のすべてのインスタンスでデータを共有する必要がある場合は、ローカル ファイル システムを使用しないでください。この目的には、データベースやブロブストアなどの共有データ サービスを使用することをお勧めします。

将来、あなたの問題はVolume Services (Experimental)で「解決」されます。アプリ用の永続ディスクが作成されます。

Cloud Foundry アプリケーションの開発者は、信頼できる一時的でないファイル システムに書き込むために、アプリケーションで 1 つ以上のボリュームをマウントする必要がある場合があります。プロバイダーは、サービス ブローカーおよび Cloud Foundry ランタイムと統合することで、自動化されたセルフサービスのオンデマンド ユーザー エクスペリエンスを通じて、これらのサービスを開発者に提供できます。

機能の発表については、ニュースレターを購読してください。アップストリームの開発については、CF コミュニティも監視してください。

于 2016-09-05T09:40:11.103 に答える