OpenShift部署

6

你好,我是新手,对OpenShift不太了解。我不知道如何创建存储库并将项目部署到其中。我已经通过命令提示符进行了配置。成功安装rhc后,我对OpenShift网站上关于上传应用程序的帮助感到困惑,而不是关于推送和提交。我已经理解了提交和推送的概念,但我还没有理解第一次部署或上传应用程序的概念。请帮帮我,我已经卡了很长时间了,谢谢。

4个回答

7
部署和构建应用程序
所有OpenShift应用程序都基于Git源代码控制工作流程 - 您在本地编码,然后将更改推送到服务器。然后,服务器运行多个钩子来构建和配置您的应用程序,并最终重新启动应用程序。可选地,应用程序可以选择使用Jenkins构建或使用“热部署”运行,这加快了代码部署到OpenShift的速度。
修改应用程序 作为OpenShift上的开发人员,您在本地计算机上进行代码更改,本地检查这些更改,然后“推送”这些更改到OpenShift。 Git的主要优势之一是它不需要持续的在线存在以运行。在决定上传这些更改之前,您可以轻松地在本地检查(在Git术语中,“提交”)并撤消更改。
您创建的每个OpenShift应用程序都有自己的Git存储库,只有您可以访问。如果您从命令行创建应用程序,则rhc会自动下载该存储库的副本(Git称此为“克隆”)到本地系统。如果您从Web控制台创建应用程序,则需要告诉Git克隆存储库。从应用程序页面找到Git URL,然后运行:
$ git clone <git_url> <directory to create>

一旦您进行更改,您需要“添加”和“提交”这些更改 - “添加”告诉Git一个文件或一组文件将成为较大检查的一部分,“提交”完成了检查。Git要求每个提交都有一个消息来描述它。

$ git add .
$ git commit -m "A checkin to my application"

最后,您已准备好将更改发送到应用程序 - 您将使用以下命令“push”这些更改:
$ git push

推送命令的输出将包含来自OpenShift有关您部署的信息 -
来源 点击这里

我知道这些。我第一次上传项目时遇到了问题。git add命令稍后会起作用。对我来说它没有用处。我在这一步落后了一步。 - Ravi Dutt
很好的描述,谢谢。我有一个应用程序,网址是as-tjava.rhcloud.com。创建后一开始可以工作。现在显示404。我在Web控制台中创建了它(能工作,没有404),然后进行了克隆,接着使用“git rm, git commit and push”命令删除了src和pom。之后我再次进入as-tjava,却出现了404错误。为什么? - Timo

7
在OpenShift中,将内容部署到Tomcat服务器有两个选项。这两个选项可以同时使用(即从源代码构建一个存档文件和其他预构建的文件)。
1) (首选)您可以按照Maven src结构上传您的内容,就像这个示例项目一样,在git push时构建和部署应用程序。为了使其工作,您需要在存储库的根目录下拥有pom.xml,以及像此示例中的maven-war-plugin,将生成的输出移动到webapps目录中。默认情况下,warName是pom.xml中的ROOT。这将导致Web应用程序内容呈现在http://app_name-namespace.rhcloud.com/。如果您在pom.xml中将warName更改为app_name,则基本URL将变为http://app_name-namespace.rhcloud.com/app_name
注意:如果您正在本地构建,则还需要将任何输出战争添加到构建的webapps中,并将其添加到.gitignore文件中。
注意:如果您正在运行扩展的EWS2.0,则需要将应用程序部署到根上下文(即http://app_name-namespace.rhcloud.com/),以便HAProxy负载均衡器识别EWS2.0实例是否处于活动状态。
或者
2) 您可以将预构建的war文件推送到webapps/。要使用默认存储库执行此操作,您需要首先从存储库的根目录运行“git rm -r src/ pom.xml”。
部署预构建内容的基本工作流程(每个操作都需要相关的git add / commit / push操作才能生效):
A)添加新的压缩内容并部署它:
  1. cp target/example.war webapps/
B)取消部署当前已部署的内容:
  1. git rm webapps/example.war
C)用新版本替换当前已部署的压缩内容并部署它:
  1. cp target/example.war webapps/
注意:您可以从运行“rhc domain show”中获取上述uri中的信息。
如果您已经将大型文件提交到git存储库中,则可以将这些文件的历史记录重写或重置为早期时间点,然后“git push --force”将这些更改应用于远程OpenShift服务器。在远程OpenShift repo上强制执行git gc可以使用以下命令(注意:tidy还包括其他清理,包括清除日志文件和tmp目录):
rhc app tidy -a appname 无论您选择选项1还是选项2,最终结果都将是应用程序部署到webapps目录中。在Tomcat发行版中,webapps目录是最终用户可以放置其部署内容(例如war、ear、jar、sar文件)以使其自动部署到服务器运行时的位置。

1
这是由 OpenShift 团队准备的非常好的教程,附带源代码,因此您不会出错。 https://www.openshift.com/blogs/spring-polyglot-persistence-part-1 总结一下 - 如果您的应用程序在某个存储库中,只需创建应用程序即可在您的目录中创建带有 git 存储库的文件夹。
rhc app create notebook jbossas-7 -l <openshift_login_email> -d

前往新创建的目录并用您的存储库替换默认的OpenShift代码

git rm -rf src/ pom.xml

git commit -am "removed default files"

git remote add notebook -m master git://github.com/shekhargulati/notebook-part1.git

git pull -s recursive -X theirs notebook master

git push

你应该看到你的Java应用程序已经构建完成。


0

我的应用程序是使用Java技术编写的。 - Ravi Dutt
内容太长,无法作为评论发布,因此我将其作为答案发布! - Sumana Mehta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接