也许我提早提出了这个问题,因为 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 界面,如下所示:
希望 RedHat 会在某个时候原生支持 sbt,但目前这两种流程中的一种应该适合您。
关于java - 如何部署 Play!框架应用到 Openshift v3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39528802/