【问题标题】:How to package a war with an external manifest.yml如何使用外部 manifest.yml 打包战争
【发布时间】:2016-10-10 18:51:35
【问题描述】:

我正在使用将部署到 CloudFoundry 的 grails 应用程序。 CloudFoundry 使用目录根目录下的 manifest.yml 文件。该文件在推送应用程序时被 CF 拾取。

我可以在外部传递这个 manifest.yml 吗?当我将 WAR 文件发送给客户端时,我不想发送我在开发中一直使用的 manifest.yml,也不希望客户端使用他们的 manifest.yml 版本重建应用程序

CF 是否支持传入 WAR 文件外部的 manifest.yml?

【问题讨论】:

  • 不确定“从外部传递清单文件”是什么意思。您不能向您的客户发送 WAR 文件和清单模板,要求客户简单地填写特定于其环境的内容,例如凭据?
  • 清单是 WAR 文件的一部分,对吧?因此,如果我将 WAR 文件发送给客户并且他们需要更改 manifest.yml 中的某些内容(例如凭据)......他们将如何做?解压WAR,修改manifest.yml,重新打包?从代码传送的角度来看,这似乎非常低效。
  • 这是一个场景:我的应用程序使用第三方 Web 服务,因此它需要该 Web 服务的 URL。我将此 URL 的值作为manifest.yml 中的用户定义环境变量传递。我打包应用程序并将一个文件(WAR 文件)发送给客户端。在客户端站点,第三方应用程序的 URL 略有不同。客户做什么?或者 CF 是否假设我作为应用程序开发人员的工作是交付生产价值?将这些类型的文件外部化是常见的做法。
  • 清单通常不是 WAR 文件的一部分,除非我弄错了。 cf push --help 显示了单独的标志,您可以将它们传递给cf push 用于-p: Path to app directory or to a zip file of the contents of the app directory 和-f: Path to manifest。如果您的清单恰好与您的源代码位于同一目录中,它也可能无意中最终出现在您的 WAR 文件中,但我认为这只是巧合。
  • Amit 是对的 - manifest.yml 通常不包含在 war 文件中。 manifest.yml 仅由客户端上的 cf CLI 使用。 CF 平台不知道该文件,不会在推送的应用程序存档中查找它。您应该分别发送 war 文件和 manifest.yml 文件。

标签: grails war manifest cloud-foundry


【解决方案1】:

CloudFoundry 使用目录根目录下的 manifest.yml 文件。这个文件在推送应用的时候被CF抓取。

这是不正确的。如果存在,cf cli 将在当前目录中选择一个manifest.yml 文件。那是默认位置。您还可以使用cf push -f path/to/manifest.yml 指定位置。

http://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#find-manifest

我可以在外部传递这个 manifest.yml 吗?

这是唯一的方法。除非您想在 WAR 文件中添加 manifest.yml,否则请让您的用户运行 unzip 并解压缩该文件。 cf cli 不会在您的 WAR 文件中查找 manifest.yml。如果没有来自manifest.yml 的path 条目,它甚至可能无法找到您的WAR 文件。

CF 是否支持传入 WAR 文件外部的 manifest.yml?

该平台不提供与共享 manifest.yml 文件相关的任何功能。如何将其提供给客户取决于您。

如上述 cmets 中所述,您可能希望将功能性 manifest.yml 的模板发送给您的客户,或提供有关客户如何创建 manifest.yml 的说明。客户的环境可能会有所不同。例如,他们可能需要不同的主机名和域名,或者他们可能绑定不同的服务。

另一种选择是发布部署脚本。部署脚本虽然更复杂,但可能更智能一些,因为它可以使用cf 查询信息并尝试自动设置更多内容。例如,您的应用需要服务吗?用于自动创建的部署脚本,这是您无法使用 manifest.yml 文件执行的操作(它只能绑定现有服务)。

希望有帮助!

【讨论】:

    猜你喜欢
    • 2022-11-10
    • 2010-10-25
    • 1970-01-01
    • 2020-01-06
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-24
    相关资源
    最近更新 更多