2

一旦调用 cf bind-service 命令,VCAP_SERVICES 中的条目似乎就会被添加。如果是这种情况,为什么需要重新启动

4

3 回答 3

2

绑定新服务时,重启应用是不够的。你必须这样restage做。

重新暂存您的应用程序会停止您的应用程序并重新暂存它,方法是编译一个新的 Droplet 并启动它。

通过启动、重新启动和重新启动应用程序了解更多详细信息。

还可以通过如何暂存应用程序来了解暂存生命周期,如何创建和存储液滴。

于 2018-01-15T16:19:46.683 回答
1

当您将服务绑定到以下应用程序时,会更新 VCAP_SERVICES 字段。当您重新启动应用程序时,液滴不是新创建的。因此,您需要重新启动应用程序。Restage 会重新创建您的 Droplet 并将其存储在 Blobstore 中。结果,变化得到反映。

于 2018-02-05T12:06:07.990 回答
1

VCAP_SERVICES操作系统环境变量是在应用程序启动时设置的。一旦进程启动,环境变量的值就无法更改。这就是为什么在执行cf bind-service完应用程序后需要重新启动才能看到的新值VCAP_SERVICES

当您cf push执行构建包时,一些构建包会检查哪些服务已绑定到应用程序,并可能对服务的存在做出反应。例如,如果您已将 newrelic 服务绑定到应用程序,那么 buildpack 会将 newrelic 代理安装到由 cf push 创建的 dropplet 中。这就是为什么对于后续cf bind-service操作,您应该cf restage重新运行 buildpack 并通过修改 buildpack 生成的 droplet 给它一个机会对新绑定的服务的存在做出反应。

于 2018-01-22T00:22:53.410 回答