我可以扩展 WebSphere Liberty buildpack 吗?

Can I extend WebSphere Liberty buildpack?

我正在寻找使用我们应用程序架构中的一些第三方库来扩展 Bluemix 中包含的 WebSphere Liberty buildpack,这样 EAR 文件的大小将大大减少,并且 cf push 命令将更加快速和敏捷。可能吗?

我知道 Cloudfoundry.org 上有一个开源的 WebSphere Liberty 构建包,但据我所知,它不像 Bluemix 中包含的那样强大,我们会失去一些有趣的功能。

谢谢!

您可以找到 Websphere Liberty 的替代构建包 here。您会注意到,它实际上是一个 CloudFoundry buildpack —— 通常它们都可以在 Bluemix 中运行。要使用它,请将 buildpack: 行添加到 manifest.yml 或将 -b 选项添加到 cf 命令行工具。

关于您需要哪些库或修改,您的问题中没有太多细节,但是这个构建包在 github 中,您可以自由地分叉和修改它。 buildpack 准备运行时,您应该能够在某些挂钩中添加自己的下载并复制必须在本地使用的目录结构。它也有很好的文档记录,所以如果你做任何非标准的事情,你应该通过配置找到你的方法。

欢迎您也分享您自己的新构建包!

您在 GitHub 上找到的 Liberty 构建包应该与 Bluemix 使用的构建包非常相似,尤其是在功能方面。包含 Beta 功能并且自动配置应该可以工作,所以理论上如果您 cf push appName -b https://github.com/cloudfoundry/ibm-websphere-liberty-buildpack.git -p myapp.war 它应该以与您 cf push appName -p myapp.war.

相同的方式工作

如果你想修改 buildpack,你可以 fork 它并添加你想要的 jars,尽管我不确定添加 jars 的过程。也许其他人可以添加一个答案,为您指明正确的方向。

如果您想在不断推送更改的开发周期中提高效率,可以尝试 Bluemix Liberty buildpack 中的 'development mode' 支持。这允许您推送增量文件更改,甚至无需重新启动 Liberty 服务器(更不用说整个应用程序容器,也称为无 cf 推送)。请在此处查看文档:https://www.ng.bluemix.net/docs/manageapps/eclipsetools/eclipsetools.html#incrementalpublish。也可以使用开发模式进行远程调试

要在 Bluemix 中自定义 Liberty 服务器,您还可以使用本地 Liberty 服务器的 server package 命令,然后 cf push 生成的 zip。

详情见https://www.ibm.com/developerworks/community/blogs/msardana/entry/developing_with_bluemix_customizing_the_liberty_build_pack_to_add_your_configurations

这当然会破坏您缩短部署时间的目标,但我想增加完整性的可能性,并防止有人在不需要它的情况下分叉构建包。