将文件夹复制到 Pivotal Cloud Foundry



我正在运行一个 jar 应用程序,该应用程序使用一些需要与 jar 位于同一路径中的资源文件夹:

这是我的文件夹如何使用的示例:

$ ls
__files  mappings  wiremock-standalone-2.24.0.jar

我可以使用 jar 文件推送 jar 文件

cf push wiremock-standalone-2.24.0.jar

但无法将两个文件夹映射和__files推送到 pcf。

当我这样做时:

cf push wiremock/__files

它尝试创建一个名为 wiremock/__files 的应用程序:

Getting app info...
Creating app with these attributes...
+ name:       wiremock/__files
path:       /tmp/build/2985dd2f

我应该使用什么命令行?

你可以做的是将所有丢失的文件添加到你的JAR包中:

cp wiremock-standalone-2.24.0.jar wiremock-standalone-2.24.0-fat.jar
jar uf wiremock-standalone-2.24.0-fat.jar ./lib

比你的命令完全相同,你所要做的就是指向Java应用程序中的新资源。

cf push

用于将应用程序部署到容器。使用cf push部署的任何内容都应是可执行应用。即使您能够成功cf push wiremock/__files,这些文件最终也会位于不同的容器中,并且无法从为cf push wiremock-standalone-2.24.0.jar创建的容器中访问。

听起来您需要 jar 文件、__filesmappings都位于同一个容器中。为此,您需要将它们全部捆绑到一个存档中并将它们cf push在一起。

正如@Alex Rashkov所建议的那样,我将文件添加到jar中,并且效果很好。

我的问题与原始问题完全相同,我想使用预配置的映射将 wiremock 部署到 PCF,所以我做了以下操作:

  • 在本地启动了 wiremock 服务器,并通过 REST API 定义了所需的映射(/__admin/mappings/import/__admin/mappings/new(
  • 已保存映射 (__admin/mappings/save(
  • 现在,所有映射都将显示为映射目录中的文件
  • 将映射目录添加到 jar 文件 (jar -uf wiremock-standalone-2.24.0.jar mappings(。 我刚刚直接更新了下载的 jar 文件,但我可以看到您可能想按照上述建议更新副本的位置。
  • 将更新的 JAR 文件推送到 PCF (java_buildpack(。 在 PCF 中运行的 wiremock 服务器将看到映射文件夹中的映射,并预定义这些映射。

感谢@Alex拉什科夫的小费!

相关内容

  • 没有找到相关文章

最新更新