7

在我的应用程序通过 cf 成功推送后,我通常需要手动 ssh-log 进入容器并执行几个 PHP 脚本来清除和预热我的缓存,可能执行一些数据库模式更新等。

今天我发现了Cloudfoundry Tasks,它似乎提供了一种很好的方式来完成这类事情,我想测试它是否可以将它集成到我的构建和部署脚本中。

所以使用cf登录,成功连接到正确的组织和空间,应用程序已被推送并正在运行,我尝试了这个命令:

cf run-task MYAPP "bin/console doctrine:schema:update --dump-sql --env=prod" --name dumpsql

(尝试了一些文件夹更改,例如 app/bin/console 等)

这是输出:

Creating task for app MYAPP in org MYORG / space MYSPACE as me@myemail...
Unexpected Response
Response Code: 404 FAILED

使用 CF CLI:6.32.0

cf logs ArcticTenTestBackend --recent不输出任何内容(可能是这种情况,因为我启用了 ELK 实例进行日志记录 - 因为我想服务连接到 ELK 以查找日志,我发现 service-connector cf 插件已消失,我将开一张新票)。

为此创建了新问题:https ://github.com/cloudfoundry/cli/issues/1242

4

2 回答 2

3

这不是 CF CLI 问题。Swisscom Application Cloud 尚不支持 Cloud Foundry 任务。这解释了您当前收到的 404。我们将在即将发布的 Swisscom Application Cloud 中公开 Cloud Foundry 的这一功能。

与此同时,也许您可​​以找到一种在应用程序启动时执行一次性任务(缓存预热、数据库迁移)的方法。

于 2017-10-12T15:43:45.153 回答
1

cf run-task正如@Mathis Kretz 所提到的,自发布此问题以来,Swisscom 已经开始启用。他们于 2018 年 11 月 22 日发送电子邮件宣布该功能。

正如您在链接文档中所讨论的,您使用以下命令来管理tasks

cf tasks [APP_NAME]
cf run-task [APP_NAME] [COMMAND]
cf terminate-task [APP_NAME] [TASK_ID]
于 2019-01-15T14:14:01.357 回答