如何将应用程序从一个 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:
cf app source-app --guid
获取您的源应用程序 GUID
cf curl /v2/apps/:source-guid/droplet/download --output /tmp/droplet.tgz
将源应用程序的 Droplet 下载到您的本地计算机(请注意,如果您的 Cloud Controller 配置为使用远程 blobstore,此命令将 return 重定向到水滴)
cf target -s destination-space
以 space 为目标,将复制的 Droplet 推送到
cf push --droplet /tmp/droplet.tgz destination-app-name
致谢:Github
这适用于基于 buildpack 的应用程序,但不适用于基于 Docker 的应用程序,因为您不能简单地下载 docker-二进制文件。
陷阱:如果你想再次使用相同的路线,不要忘记从你的旧[=52=]中删除(不仅仅是解除绑定)。
我在组织中创建了一个新的 space,我必须将多个应用程序从一个 space 移动到新创建的应用程序。我怎样才能做到这一点? (我不想重命名旧的 space,因为只需要移动其应用程序的一个子集。
恐怕没有这样的功能可以将应用程序从一个 space 移动到另一个。不过,有两种可能性可以实现它:
编译&推送
如果您可以访问应用程序的源代码并使用常见的 CI/CD 设置,只需调整您的脚本,让它们指向新的 space 并触发完整的 CI/CD循环.
下载并推送
如果您无权访问源代码,您存储二进制文件的二进制存储库 或 必须确保它是 100% 相同的 droplet新 space,您可以从 Cloud Foundry 下载该 droplet 并将其推送到新 space:
cf app source-app --guid
获取您的源应用程序 GUIDcf curl /v2/apps/:source-guid/droplet/download --output /tmp/droplet.tgz
将源应用程序的 Droplet 下载到您的本地计算机(请注意,如果您的 Cloud Controller 配置为使用远程 blobstore,此命令将 return 重定向到水滴)cf target -s destination-space
以 space 为目标,将复制的 Droplet 推送到cf push --droplet /tmp/droplet.tgz destination-app-name
致谢:Github
这适用于基于 buildpack 的应用程序,但不适用于基于 Docker 的应用程序,因为您不能简单地下载 docker-二进制文件。
陷阱:如果你想再次使用相同的路线,不要忘记从你的旧[=52=]中删除(不仅仅是解除绑定)。