如何部署Play!框架应用程序到Openshift v3

时间:2016-09-16 10:05:29

标签: java playframework openshift

也许我早就提出这个问题,因为Openshift v3仍在预览中,但是我可能没有看到我的问题的解决方案:)。

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

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

谢谢,亲切的问候! 埃里克

2 个答案:

答案 0 :(得分:1)

这里有两个选择。

SBT Native Packager

第一个选项是使用SBT Native Packager SBT构建器来创建Docker镜像(手动或使用像Jenkins这样的东西)。开箱即用,您应该能够运行sbt docker:publishLocal并获得本地泊坞窗图像,然后您可以将其推送到Docker仓库。然后,您可以使用oc new-app <docker repo>/<docker image>:<image version>在openshift中启动它。

由于你的图像是在其他地方建造的,所以你并没有完全充分利用OpenShift。但它可能适合您当前的开发流程。

好处是您的泊坞窗图像非常小。 SBT很好地打包了所有依赖项。

图片来源

第二个选项是创建自己的source to image构建器,它知道如何构建sbt / play项目。这是我的团队采取的路径。您可以查看our sbt builder以获取参考信息,但最多仍然是测试版质量。

此过程的缺点是所有来源都包含在图像中,所以它的大一点。也没有人支持这个构建器,所以如果你有bug,你就是自己。

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

备注

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

OpenShift Build Pipeline Screenshot

希望RedHat会在某些时候本地支持sbt,但是现在这两个流程中的一个应该适合你。

答案 1 :(得分:1)

对于每个寻找我自己问题答案的人来说,这就是我如何在Openshift上运行Play应用程序(自己安装)。 首先,非常感谢@PatrickTescher。他的回答指出了我正确的方向。

我还没有成功通过激活器在Openshift中运行一个docker构建(猜测它与在root下运行有关),但我已经达到了我自己运行Source to Image构建的程度Openshift集群。 Openshift的在线开发者预览版尚无法实现这种方法。通过我到目前为止所做的所有阅读,我同意帕特里克说这是最好的方法。

通过深入了解以下链接,您应该启动并运行:

在最后一个链接中,您可以通过registry.centos.org/centos/centos:latest更改registry.access.redhat.com/rhel7.2(rhel需要认证,centos是等同的免费社区)