【发布时间】: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