在Cloud Foundry上运行命令,在其自己的容器中运行

时间:2017-11-07 14:00:22

标签: cloudfoundry pivotal-cloud-foundry

正如您在Cloud Foundry的官方文档中看到的那样

https://docs.cloudfoundry.org/devguide/using-tasks.html

任务是一个应用程序或脚本,其代码作为已部署应用程序的一部分包含在内,但在其自己的容器中独立运行。

我想知道是否有办法在不使用SSH连接或清单文件的情况下直接在应用程序的主容器上运行命令和操作文件。

由于

1 个答案:

答案 0 :(得分:0)

没有。任务在自己的容器中运行,因此它们不会影响其他正在运行的任务或运行应用程序实例。这就是设计行为。

如果您需要对应用程序进行更改,请查看以下内容之一:

  • 使用.profile脚本。这将允许您在应用程序启动之前执行操作。它针对启动的每个应用程序实例运行(我不相信它会针对任务运行),因此将始终如一地应用该操作。

    虽然不推荐,但您可以通过.profile脚本在技术上对任务进行后台处理,该脚本将在您的应用期间继续运行。建议不要这样做,因为没有对此脚本进行监控,如果崩溃,则不会导致应用容器重启。

  • 与您的buildpack集成。一些buildpack就像PHP buildpack一样,为您提供了集成和添加行为的挂钩。对于其他buildpack,您可以派生buildpack并使其做任何您想做的事情。这包括更改buildpack返回的命令,该命令告诉平台如何执行您的Droplet以及最终在容器中运行的内容。

您可以在技术上修改正在运行的应用实例cf ssh,但我不推荐它。这是你应该只为故障排除或测试做的事情。绝对不是生产应用程序。如果您因为某些原因感觉需要修改正在运行的应用实例,我建议您查看原因,并寻找其他方法来实现您的目标。