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

Run command on Cloud Foundry in it's own container

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

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

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

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

谢谢

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

如果您需要更改您的应用程序,您应该查看以下内容之一:

  • 使用 .profile 脚本。这将允许您在应用程序启动之前执行操作。它 运行s 对于每个启动的应用程序实例(我不相信它 运行s 对于任务)所以操作将被一致地应用。

    虽然不推荐,但从技术上讲,您可以通过 .profile 脚本将任务置于后台,该脚本将在您的应用运行期间持续 运行ning。不推荐这样做,因为没有对此脚本的监控,如果它崩溃也不会导致您的应用程序容器重新启动。

  • 与您的构建包集成。一些 buildpack,例如 PHP buildpack 为您提供挂钩,以便将行为集成和添加到暂存中。对于其他 buildpack,您可以 fork buildpack 并让它做任何您想做的事情。这包括更改 buildpack 返回的命令,该命令告诉平台如何执行您的 droplet 以及最终容器中的 运行s。

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