【问题标题】:OpenShift DeploymentOpenShift 部署
【发布时间】:2013-05-22 12:20:13
【问题描述】:

您好,我是新开班次。我不知道如何创建存储库并将我们的项目部署到它。我已经通过命令提示符进行了配置。通过命令提示符成功安装 rhc 后,我对 Open Shift 网站上关于上传应用程序的帮助感到困惑,而不是关于推送和提交。我得到了关于提交和推送的想法,但我没有得到关于第一次部署或上传应用程序的想法。请帮助我,我被卡住了很长时间,提前谢谢

【问题讨论】:

    标签: openshift openshift-client-tools


    【解决方案1】:

    部署和构建应用程序

    所有 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 的有关您的部署的信息 -

    来源Click me

    【讨论】:

    • 这一切我都知道。我第一次上传我的项目时遇到问题。git add 命令稍后会起作用。对我没用。这一步我落后了一步
    • 很好的描述,谢谢。我这里有一个应用程序 as-tjava.rhcloud.com。它在创建后最初工作。它现在显示 404。我在 webconsole 中创建它(工作,没有 404),然后克隆,然后使用“git rm,git commit and push”删除 src 和 pom。之后我又去 as-tjava 得到了 404。为什么?
    【解决方案2】:

    在 OpenShift 中将内容部署到 Tomcat 服务器有两种选择。两种选择 可以一起使用(即从源代码构建一个存档,其他存档)

    1)(首选)您可以像此示例项目一样以 Maven src 结构上传您的内容 git push 已经构建和部署了应用程序。为此,您需要您的 pom.xml 存储库的根目录和本示例中的 maven-war-plugin 用于移动构建中的输出 到 webapps 目录。默认情况下,warName 在 pom.xml 中是 ROOT。这将导致 要在http://app_name-namespace.rhcloud.com/ 呈现的 webapp 内容。如果您在 pom.xml 到 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) 添加新的压缩内容并进行部署:

    1. cp 目标/example.war webapps/

    B) 取消部署当前部署的内容:

    1. git rm webapps/example.war

    C) 将当前部署的压缩内容替换为新版本并部署:

    1. cp 目标/example.war webapps/

    注意:你可以通过运行 'rhc domain show' 来获取上面 uri 中的信息

    如果您已经将大文件提交到您的 git 存储库,您可以在 git 中重写或重置这些文件的历史记录 到更早的时间点,然后“git push --force”将这些更改应用到远程 OpenShift 服务器上。一个 可以强制使用远程 OpenShift repo 上的 git gc (注意:tidy 还进行其他清理,包括清除日志 文件和 tmp 目录):

    rhc app tidy -a appname

    无论您选择选项 1) 还是 2),最终结果都将是应用程序 部署到 webapps 目录中。 webapps 目录中的 Tomcat 分布是最终用户可以放置的位置 他们的部署内容(例如war、ear、jar、sar文件)拥有它 自动部署到服务器运行时。

    【讨论】:

      【解决方案3】:

      这里是由 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 应用程序构建。

      【讨论】:

        【解决方案4】:

        您的应用是什么应用类型? 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

        【讨论】:

        • 我的应用程序是用 Java 技术编写的。
        • 内容太长,无法作为评论发布,所以我将其发布为答案!
        猜你喜欢
        • 1970-01-01
        • 2015-07-20
        • 2016-07-23
        • 2020-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多