使用Jenkins的OpenShift部署失败

时间:2014-09-30 03:36:17

标签: jenkins openshift

我有一个jenkins工作,可以在OpenShift上构建和部署到tomcat7实例

http://cartreflect-claytondev.rhcloud.com/github/worldline/openshift-cartridge-tomcat

复制Tomcat7磁带
....
....
Starting tomcat cartridge
Timed out waiting for http listening port
Error deploying to gear

构建的最后一个命令是

gear remotedeploy --deployment-datetime $deployment_dir

因此,当此作业运行时,它总是会失败,但是拖尾服务器日志会显示部署正常并且应用程序已成功部署。在我看来jenkins工作等待tomcat启动但从不接收信号。因此"超时等待http监听端口"并且工作认为部署失败,因此工作失败。

我能做些什么来解决这个问题吗?可能在内部构建脚本?或者远程部署不要期待信号?

请指教,谢谢。

更新此票证(2014年10月13日); 我发现这个失败的作业和成功的作业之间的控制台输出有所不同。下面的摘录总是在成功的作业(部署到jbossews)上,而失败的作业(部署到前面提到的墨盒)根本就没有这个部分! 我认为这可能是一个重要的区别。见下面的控制台输出;

+ hot_deploy_enabled_for_latest_deployment
++ ruby_sdk latest_deployment_metadata.hot_deploy
++ oo-ruby -I/usr/lib/openshift/cartridge_sdk -rruby/sdk -e 'include OpenShift::CartridgeSdk; puts latest_deployment_metadata.hot_deploy'
+ enabled=
+ '[' '' == true ']'
+ return 1

2 个答案:

答案 0 :(得分:0)

在这里制作磁带的人https://github.com/worldline/openshift-cartridge-tomcat可能值得记录一个问题,或者您可以尝试使用openshift提供的标准jbossews(tomcat)磁带之一。似乎他们为这个墨盒所做的一切都是将所谓的“jbossews”重命名为“tomcat”。 OpenShift提供tomcat 6,tomcat7,jboss as 7,jboss eap和wildfly cartridge,我相信其中一个也可以同样工作,并且与jenkins一起正常工作。

答案 1 :(得分:0)

您可以尝试使用worldline-openshift-origin-release-4,它可以解决您的问题:http://cartreflect-claytondev.rhcloud.com/github/worldline/openshift-cartridge-tomcat?commit=worldline-openshift-origin-release-4