【问题标题】:Copy a folder to Pivotal Cloud Foundry将文件夹复制到 Pivotal Cloud Foundry
【发布时间】:2019-09-09 17:52:27
【问题描述】:

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

这是我的文件夹的一个示例:

    $ ls
__files  mappings  wiremock-standalone-2.24.0.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

我应该使用什么命令行?

【问题讨论】:

    标签: cloud-foundry


    【解决方案1】:

    您可以做的是将所有丢失的文件添加到您的 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 应用程序内的新资源即可。

    【讨论】:

      【解决方案2】:

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

      听起来您需要将 jar 文件 __filesmappings 都放在同一个容器中。要做到这一点,您需要将它们全部捆绑到一个存档中,并将cf push 它们放在一起。

      【讨论】:

      • 将它们归档到新的 jar 中?在这种情况下,PCF 是如何知道它应该在新存档中运行应用程序 .jar 的?
      • 将 .jar 文件推送到 CF 时,CLI 会解压 jar(仅限第一级)并推送其中包含的各个文件。所以你可以自己解压wiremock-standalone-2.24.0.jar到一个临时目录,添加__filesmappings到那个临时目录,然后把目录位置给cf push -p。这将导致cf 将所有内容推送到临时目录中。
      • Java buildpack 负责检测已部署 Java 应用程序并设置容器以运行它。在这种情况下,它将需要一个META-INF/MANIFEST.MF(来自解压缩的 jar 文件)来命名要运行的主类。见github.com/cloudfoundry/java-buildpack/blob/master/docs/…
      【解决方案3】:

      按照@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 Rashkov 的提示!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-10-05
        • 2021-02-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-26
        • 1970-01-01
        相关资源
        最近更新 更多