【问题标题】:Where to put configuration data for a Bluemix Liberty web application将 Bluemix Liberty Web 应用程序的配置数据放在哪里
【发布时间】:2015-10-22 17:58:09
【问题描述】:

我有一个打包为war 文件的Web 应用程序,该文件部署到Liberty 容器中的Bluemix。应用程序将配置信息存储在 Web 应用程序文件夹之外的目录集合中,并在初始安装期间将默认文件复制到该位置。当我将其部署为简单的默认战争文件时,将默认文件复制到此位置时出错。由于 Liberty 默认不展开 war 文件,因此我将 war 分解到一个目录 (defaultServer/apps/idmu.war) 并使用此处记录的服务器目录部署:https://www.ng.bluemix.net/docs/starters/liberty/index.html#optionsforpushinglibertyapplications__ServerDirectory

使用server.xml的

<server>
    <featureManager>
        <feature>jsp-2.3</feature>
    </featureManager>
    <httpEndpoint id="defaultHttpEndpoint" host="*" httpPort="8080" />
    <application name="idmu" context-root="/" type="war" location="idmu.war"/>
</server>

使用以下命令重新发布应用后

cf push idmu -p defaultServer

应用程序重新启动,我仍然收到文件复制错误,所以我怀疑是目标目录和权限导致了问题。非常感谢有关在何处找到此目录以及如何设置权限的任何帮助。

【问题讨论】:

  • 您想将这些文件复制到哪里?您应该对 /home/vcap/ 具有写入权限,这是您在 buildpack 容器中的主目录。例如,/wlp 位于 /home/vcap/app/wlp
  • 非常感谢。通过该更改,我现在可以复制文件,但我需要编辑内容以描述环境。此外,这个目录似乎是暂时的(即,当应用程序重新启动时它会消失) - 存储基于文件的持久数据的正确位置在哪里?如何在部署期间编辑或上传这些文件?
  • 评论已移至答案,因为它似乎对您有所帮助。

标签: java ibm-cloud websphere-liberty


【解决方案1】:

您应该在 /home/vcap/ 拥有写入权限,这是您在 buildpack 容器中的主目录。例如,/wlp 位于 /home/vcap/app/wlp。

Cloud Foundry(即 Bluemix)作为一个概念,是暂时的。它是为云原生应用程序设计的,因此如果您需要持久存储,您应该需要像 Object Store 这样的服务或目录中的其他选项来持久保存此类信息。一些想法:http://12factor.net/config

您可以在开发模式下启动 Liberty Buildpack:https://developer.ibm.com/bluemix/2015/06/16/liberty-buildpack-app-management-support/,这样您就可以访问 shell,但不确定是否可以编辑。正如我上面评论的那样,这不是一个好主意,因为文件系统是瞬态的。

另一种解决方案是先编辑这些文件,然后将它们部署为完整应用程序的一部分。

【讨论】:

  • 我认为最好的答案是进行预配置,以便在推送时在应用程序中。其他任何事情都是不可靠的。 PaaS 可以随时移动内容,因此即使您执行第一个操作,但它可能由于重启或新应用部署以外的其他原因而被擦除。
  • 所以任何人都可以推荐一个基于文件系统的持久性服务,应用程序有少量的状态信息存储在文本文件的集合中,这些信息需要在应用程序的运行之间持久化。我真的不想重写任何代码来将其更改为数据库或其他结构化数据存储。
  • 我前段时间使用 Bluemix 中的 VM 支持设置了类似的东西(通知目前处于 Beta 版),但从我的角度来看这太棘手了:stackoverflow.com/questions/30470112/… 我会使用像 Object Store 这样的东西同意,这需要更改代码。
  • 环境变量也是存储配置的好地方。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多