CF set-env 无需重新启动
CF set-env without restage
假设我有一个包含两个实例的应用程序。
我会更改环境变量 (cf set-env) 并且不执行 cf restage。
最终,两个实例之一会崩溃并重新启动。它会采用新环境变量还是旧环境变量?
编辑:
看完下面tcdowney的回答后,我试了一下。 tcdowney 是对的。当应用程序因崩溃而重新启动时,它不会获取新的环境变量,因此您的两个应用程序实例将共享相同的环境。
相比之下,当您执行 cf restart my-app
时,它会拾取它。抱歉造成混淆!
============================================= ===========
它将采用环境变量的新值。看这里:https://docs.run.pivotal.io/devguide/deploy-apps/start-restart-restage.html
仅当变量与构建包相关时,您才需要重新暂存。
一般来说,如果实例崩溃(比如应用程序内存不足)并由 Diego 重新启动(实际上 运行 容器实例的运行时),重新启动的实例仍将具有它的环境变量最初是 "desired"(创建)与。
如果您明确 cf restart
或 cf stop && cf start
应用程序,它将获取需要重新暂存的新环境变量。
正如 user152468 上面所说,如果在暂存过程中使用了环境变量,您将需要cf restage
应用程序才能使它们在功能上生效。
边缘案例场景
如果 Diego 运行时由于某些灾难性原因进入 away/loses 数据,云控制器将重新同步它并重新创建本应成为 运行 的应用程序。在这种情况下,行为类似于 cf restart
,应用程序将获取新的环境变量。这绝对不常见,但也算作 "crash" 场景。
假设我有一个包含两个实例的应用程序。 我会更改环境变量 (cf set-env) 并且不执行 cf restage。 最终,两个实例之一会崩溃并重新启动。它会采用新环境变量还是旧环境变量?
编辑:
看完下面tcdowney的回答后,我试了一下。 tcdowney 是对的。当应用程序因崩溃而重新启动时,它不会获取新的环境变量,因此您的两个应用程序实例将共享相同的环境。
相比之下,当您执行 cf restart my-app
时,它会拾取它。抱歉造成混淆!
============================================= ===========
它将采用环境变量的新值。看这里:https://docs.run.pivotal.io/devguide/deploy-apps/start-restart-restage.html
仅当变量与构建包相关时,您才需要重新暂存。
一般来说,如果实例崩溃(比如应用程序内存不足)并由 Diego 重新启动(实际上 运行 容器实例的运行时),重新启动的实例仍将具有它的环境变量最初是 "desired"(创建)与。
如果您明确 cf restart
或 cf stop && cf start
应用程序,它将获取需要重新暂存的新环境变量。
正如 user152468 上面所说,如果在暂存过程中使用了环境变量,您将需要cf restage
应用程序才能使它们在功能上生效。
边缘案例场景
如果 Diego 运行时由于某些灾难性原因进入 away/loses 数据,云控制器将重新同步它并重新创建本应成为 运行 的应用程序。在这种情况下,行为类似于 cf restart
,应用程序将获取新的环境变量。这绝对不常见,但也算作 "crash" 场景。