java - 如何部署 Play!框架应用到 Openshift v3

标签 java playframework openshift

也许我提早提出了这个问题,因为 Openshift v3 仍处于预览阶段,但是可能有解决我的问题的方法,但我没有看到 :)。

我正在迈出构建 java Play 框架应用程序的第一步,并选择 Openshift 作为我的托管平台。我刚刚能够让我的应用程序 + mysql 数据库在 Openshift v2 上工作,因为他们发布了 v3 预览版,并注意到 v2 最终将消失。 在新的图像/模板中,仍然没有显示 Java Play 版本,也没有“自己动手做”的方式。

非常感谢任何提示或“教程”链接:)。

感谢和亲切的问候! 埃里克

最佳答案

这里有两个选择。

SBT 原生打包器

第一个选项是使用 SBT Native Packager SBT 构建器来创建您的 Docker 镜像(手动或使用类似 Jenkins 的工具)。开箱即用,您应该能够运行 sbt docker:publishLocal并获取本地 docker 镜像,然后您可以将其推送到 Docker 存储库。然后,您可以使用 oc new-app <docker repo>/<docker image>:<image version> 在 openshift 中启动它.

不利的一面是,您并没有真正充分利用 OpenShift,因为您的镜像是在其他地方构建的。但它可能很适合您当前的开发流程。

好处是您的 docker 镜像会非常小。 SBT 很好地打包了所有依赖项。

源到图像

第二个选项是创建您自己的 source to image知道如何构建 sbt/play 项目的构建器。这是我的团队走过的路。你可以看看our sbt builder仅供引用,但充其量仍是测试版质量。

此过程的缺点是您的所有来源都包含在图像中,因此它更大。也没有人支持此生成器,因此如果您有错误,请自行解决。

好处是 OpenShift 将构建您的图像,您将在 OpenShift Web 控制台中看到您的构建状态。

注意事项

使用 OpenShift Origin 1.3.0,您还可以访问 Jenkins 管道。这可以使上述两种情况中的任何一种变得更容易。您最终会得到一个很酷的 Web 界面,如下所示:

OpenShift Build Pipeline Screenshot

希望 RedHat 会在某个时候原生支持 sbt,但目前这两种流程中的一种应该适合您。

关于java - 如何部署 Play!框架应用到 Openshift v3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39528802/

相关文章:

java - 如何处理 selenium Xpath 中的条件

java - mysql中PreparedStatement插入逻辑操作(=,<,>=,<,>=)

java - 计算幂函数的底

kubernetes - 每个模板字段的 OpenShift/Kubernetes 解释

java - 出站请求的 BindException

java - JDBC MySQL 提示连接过多

java - Play 应用程序配置未加载?

postgresql - 安装 postgresql 玩!框架(未找到驱动程序 : [org. postgresql.Driver])

java - 在play框架中调用webservice时出现NullPointer异常

python - json.load 在加载带有拉丁字符的文件时出错