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