嗨,我是新开班次。我不知道如何创建存储库并将我们的项目部署到它。我已经通过命令提示符进行了配置。通过命令提示符成功安装 rhc 后,我对 Open Shift 网站上关于上传应用程序的帮助感到困惑,而不是关于推送和提交。我得到了关于提交和推送的想法,但我没有得到关于第一次部署或上传应用程序的想法。请帮助我,我被卡住了很多时间提前谢谢
4 回答
在 OpenShift 中将内容部署到 Tomcat 服务器有两种选择。这两个选项可以一起使用(即从源代码构建一个存档,其他的预构建)
1)(首选)您可以像此示例项目一样在 Maven src 结构中上传您的内容,并在 git push 上构建和部署应用程序。为此,您需要您的存储库根目录中的 pom.xml 和本示例中的 maven-war-plugin 以将输出从构建移动到 webapps 目录。默认情况下,warName 在 pom.xml 中是 ROOT。这将导致 webapp 内容在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)您可以将预先构建的战争 git push 到 webapps/. 要使用默认存储库执行此操作,您需要首先从存储库的根目录运行“git rm -r src/pom.xml”。
部署预建内容的基本工作流程(每个操作都需要关联的 git add/commit/push 操作才能生效):
A) 添加新的压缩内容并部署它:
- cp 目标/example.war webapps/
B) 取消部署当前部署的内容:
- git rm webapps/example.war
C) 将当前部署的压缩内容替换为新版本并部署:
- cp 目标/example.war webapps/
注意:您可以通过运行 'rhc domain show' 获取上述 uri 中的信息
如果您已经将大文件提交到您的 git 存储库,您可以重写或重置 git 中这些文件的历史记录到较早的时间点,然后使用“git push --force”将这些更改应用到远程 OpenShift 服务器上。可以强制使用远程 OpenShift 存储库上的 git gc(注意:tidy 还进行其他清理,包括清除日志文件和 tmp 目录):
rhc app tidy -a appname
无论您选择选项 1) 还是 2),最终结果都将是部署到 webapps 目录中的应用程序。Tomcat 发行版中的 webapps 目录是最终用户可以放置他们的部署内容(例如 war、ear、jar、sar 文件)以使其自动部署到服务器运行时的位置。
部署和构建应用程序
所有 OpenShift 应用程序都是围绕 Git 源代码控制工作流程构建的——您在本地编码,然后将您的更改推送到服务器。然后,服务器会运行许多挂钩来构建和配置您的应用程序,最后重新启动您的应用程序。可选地,应用程序可以选择使用 Jenkins 构建,或者使用“热部署”运行,这可以加快将代码部署到 OpenShift 的速度。
更改您的应用程序 作为 OpenShift 上的开发人员,您在本地机器上进行代码更改,在本地检查这些更改,然后将这些更改“推送”到 OpenShift。Git 的主要优点之一是它不需要持续在线即可运行。在决定将这些更改上传到 OpenShift 之前,您可以轻松签入(在 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"
最后,您已准备好将更改发送到您的应用程序 - 您将通过以下方式“推送”这些更改:
$ git push
push 命令的输出将包含来自 OpenShift 的有关您的部署的信息 -
来源点我
这是由 openshift 人员准备的非常好的教程,带有源代码,因此您可能会出错。 https://www.openshift.com/blogs/spring-polyglot-persistence-part-1
总结一下 - 如果您的应用程序在某个存储库上,只需创建您的应用程序,以便它在您的目录中创建带有 git repo 的文件夹
rhc app create notebook jbossas-7 -l <openshift_login_email> -d
转到新创建的目录并用您的 repo 替换默认的 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 应用程序构建。
您的应用是什么应用类型?Java/PHP/Python...?如果它是一个基于 PHP 的应用程序,那么外部暴露的 PHP 代码应该进入“php”目录。每当您使用 rhc 命令创建应用程序时,都会创建一个本地存储库,您将在其中找到一个 README 文档,其中列出了您的部署步骤。此外,您可以在此处参考 OpenShift 用户指南:
https://www.openshift.com/sites/default/files/documents/OpenShift-2.0-User_Guide-en-US_5.pdf