openshift s2i_对Openshift上的Play Framework 2应用进行故障排除

openshift s2i

Openshift故障排除
 
使用“ 自己动手”应用程序类型,您实际上可以有很大的自由度来支持几乎可以在Linux机器上构建和运行的任何框架或服务器。 但是您必须做功课,并做一些研究。
因此,在本文中,我将向您展示一些我在使用OpenshiftPlay Framework方面学到的技巧。
欢迎发表评论,所以我希望您也可以向我提供更多提示,以帮助我们所有人在云上运行我们的应用程序。
为播放框架应用程序提供本机支持
 
目前,我们发现用于在openshift上部署Play 2.0应用程序的解决方案非常方便,但我们可以做得更好。
问题在于我们必须在本地编译该应用程序(发出play stage ),然后将30 MB的库推入Openshift。 理想的事情就是使用Play 1.x快速入门适用于Play Framework 1.x的最新版本的Openshift模块进行的操作 ,那就是上传我们的源代码,然后让Openshift下载并安装Play,编译我们的应用程序,然后启动它。
不幸的是,我们遇到了一些内存限制(似乎编译Play 2应用程序有点内存需求)最终导致了一些问题。 我们正在努力解决它们,但是也许,有了这些技巧,您可以帮助解决问题。
通过Openshift开源和新的Origin livecd,我们可以使用更多工具来进一步调查正在发生的事情,我只是没有时间开始使用它。
因此,chat不休,让我们动手吧。
休斯顿,我们有一个问题
 
好的,您刚刚阅读了本指南,或者使用此Play 2.0快速入门Play Framework网络研讨会上按照我们的步骤进行了操作(实际上,其中一些技巧将有助于排除在Openshift上运行的任何应用程序的故障),并且出现了问题。
首先,看看日志。 刚发行
rhc app tail -a myapp -l mylogin@openshift.com -p mysecretpass
将该窗口保持打开状态,以后将变得非常方便。
然后,我们将SSH到我们的远程计算机中。 只是发出:
rhc app show -a myapp -l mylogin@openshift.com -p mysecretpass
你会得到类似
Application Info
================
contacts
    Framework: diy-0.1
     Creation: 2012-04-19T14:20:16-04:00
         UUID: 0b542570e41b42e5ac2a255c316871bc
      Git URL: ssh://0b542570e41b42e5ac2a255c316871bc@myapp-mylogin.rhcloud.com/~/git/myapp.git/
   Public URL: http://myapp-mylogin.rhcloud.com/

 Embedded: 
      None
在ssh后面的Git URL内容之后,登录到openshift机器:
ssh 96e487d1d4a042f8833efc696604f1e7@myapp-mylogin.rhcloud.com
(如果您像我一样懒惰,请继续投票以更轻松地将其转换为openshift
打开另一个命令窗口,将ssh切换到openshift并运行诸如“ top”或“ watch -n 2 free -m”之类的内容来监视内存使用也是一个好主意。
排除播放故障
 
您知道一个古老的座右铭:“编写一次,到处运行”……好吧,它只是“应该”工作,但是以防万一,您可以尝试使用与在openshift上运行的JDK版本相同的JDK版本来编译您的应用程序。
赶紧跑
java -version
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.6) (rhel-1.43.1.10.6.el6_2-i386)
OpenJDK Server VM (build 20.0-b11, mixed mode)
并在您的包装盒上安装相同的jdk版本。 然后编译您的应用并重新部署(您可以使用便捷脚本openshift_deploy
如果那不起作用,请尝试在Openshift上手动完成整个过程。 您应该执行以下操作:
# download play
cd ${OPENSHIFT_DATA_DIR} 
curl -o play-2.0.1.zip http://download.playframework.org/releases/play-2.0.1.zip
unzip play-2.0.1.zip
cd ${OPENSHIFT_REPO_DIR}

#stop app
.openshift/action_hooks/stop

#clean everything - watch for errors, if it fails retry a couple more times
${OPENSHIFT_DATA_DIR}play-2.0.1/play clean
如果您得到类似的信息:
/var/lib/stickshift/0b542570e41b42e5ac2a255c316871bc/myapp/data/play-2.0.1/framework/build: line 11: 27439 Killed
这意味着它不幸失败了(这是我告诉过您的内存问题)
这是一个很糟糕的错误,您还会松开命令提示符。 只要盲目地输入“ reset”,然后按Enter,您将得到提示。
然后再试一次...
您可能还会收到以下消息:
This project uses Play 2.0!
Update the Play sbt-plugin version to 2.0.1 (usually in project/plugins.sbt)
这意味着您使用Play 2.0创建了该应用程序,现在正尝试使用其他版本进行编译。
只需更新project / plugins.sbt文件或下载适当的版本。
现在编译并上演您的应用程序。
#compile everything - watch for errors, if it fails retry a couple more times
${OPENSHIFT_DATA_DIR}play-2.0.1/play compile

#stage - watch for errors, if it fails retry a couple more times
${OPENSHIFT_DATA_DIR}play-2.0.1/play stage
然后运行它(不要害羞,看看quickstart repo上的action hooks脚本 )。
target/start -Dhttp.port=8080 -Dhttp.address=${OPENSHIFT_INTERNAL_IP} -Dconfig.resource=openshift.conf
去https://myapp-mylogin.rhcloud.com检查一下
如果一切正常,只需使用ctrl-c停止它,然后运行:
.openshift/action_hooks/start
您应该在控制台中看到带有日志文件的应用程序
现在,您可以使用ctrl-d从ssh会话注销,然后发出:
rhc app restart -a myapp -l mylogin@openshift.com -p mysecretpass
你应该看到类似
Stopping play application
Trying to kill proccess, attempt number 1
kill -SIGTERM 19128
/var/lib/stickshift/0b542570e41b42e5ac2a255c316871bc/openbafici/repo/target/start "-DapplyEvolutions.default=true" -Dhttp.port=8080 -Dhttp.address=127.11.189.129 -Dconfig.resource=openshift.conf
Play server process ID is 21226
[info] play - Application started (Prod)
[info] play - Listening for HTTP on port 8080...
希望本技巧对您有所帮助。 正如我所说的,我很期待开始使用Openshift Origin livecd,然后再告诉您。
在此期间,我将陪伴您与旧式Openshift火箭熊一起,我知道您也很想念他,那么为什么不让他回来呢?

翻译自: https://www.javacodegeeks.com/2012/05/troubleshooting-play-framework-2-apps.html

openshift s2i

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值