【问题标题】:Run command on Cloud Foundry in it's own container在 Cloud Foundry 自己的容器中运行命令
【发布时间】:2026-01-18 07:30:01
【问题描述】:

您可以在 Cloud Foundry 的官方文档中看到

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

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

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

谢谢

【问题讨论】:

    标签: cloud-foundry


    【解决方案1】:

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

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

    • 使用.profile 脚本。这将让您在应用程序启动之前执行操作。它为每个启动的应用程序实例运行(我不相信它为任务运行),因此该操作将被一致地应用。

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

    • 与您的 buildpack 集成。一些 buildpack 像 PHP buildpack 提供了钩子来集成和添加行为到 staging。对于其他构建包,您可以分叉构建包并使其随心所欲。这包括更改 buildpack 返回的命令,该命令告诉平台如何执行您的 Droplet 以及最终在容器中运行什么。

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

    【讨论】:

      最近更新 更多