如何将应用程序从一个 space 移动到另一个?

How can I move an app from one space to another?

我在组织中创建了一个新的 space,我必须将多个应用程序从一个 space 移动到新创建的应用程序。我怎样才能做到这一点? (我不想重命名旧的 space,因为只需要移动其应用程序的一个子集。

恐怕没有这样的功能可以将应用程序从一个 space 移动到另一个。不过,有两种可能性可以实现它:

编译&推送

如果您可以访问应用程序的源代码并使用常见的 CI/CD 设置,只需调整您的脚本,让它们指向新的 space 并触发完整的 CI/CD循环.

下载并推送

如果您无权访问源代码,您存储二进制文件的二进制存储库 必须确保它是 100% 相同的 droplet新 space,您可以从 Cloud Foundry 下载该 droplet 并将其推送到新 space:

  1. cf app source-app --guid 获取您的源应用程序 GUID
  2. cf curl /v2/apps/:source-guid/droplet/download --output /tmp/droplet.tgz 将源应用程序的 Droplet 下载到您的本地计算机(请注意,如果您的 Cloud Controller 配置为使用远程 blobstore,此命令将 return 重定向到水滴)
  3. cf target -s destination-space 以 space 为目标,将复制的 Droplet 推送到
  4. cf push --droplet /tmp/droplet.tgz destination-app-name

致谢:Github

这适用于基于 buildpack 的应用程序,但不适用于基于 Docker 的应用程序,因为您不能简单地下载 docker-二进制文件。

陷阱:如果你想再次使用相同的路线,不要忘记从你的旧[=52​​=]中删除(不仅仅是解除绑定)。