有时需要排查问题,例如:检查 CF 中的 app 对应文件是否存在?推送到 CF 中的整个应用是否和本地的一致?或者需要备份整个 app。
这时可以将在 CF 中已运行的 app 实例下载到本地。
Solution首先我们需要知道整个 app (所有 app 会产生的临时文件) 是运行在一个容器里的,我们称为 Droplet (app 的源代码和任何改动都会被 app 所对应的 Buildpack 进行编译,让其变得最终可运行)。
我们可以通过 CF 提供的 API 来下载 Droplet 里的整个内容。操作步骤如下:
执行:cf app --guid
.
接着获取当前 droplet 的 guid (<droplet-guid>)。执行:cf curl /v3/apps/<guid>/droplets/current
,对应的输出可参考如下格式:
下载容器里的整个 app。执行:cf curl /v3/droplets/<droplet-guid>/download --output droplet.tar.gz
。最终输出的格式可以为:.tar.gz, .gtz 等等。 最终文件被下载的位置为当前命令行窗口所在的目录。