【问题标题】:How to redeploy a Tomcat 7 application on Openshift如何在 Openshift 上重新部署 Tomcat 7 应用程序
【发布时间】:2023-03-09 06:57:02
【问题描述】:

我知道git push origin master 会让 Openshift 将应用程序重新部署到新版本。

但我的情况是我的Tomcat应用程序依赖于另一个子模块maven项目,它们都是快照。

一旦其子模块项目发生变化(Tomcat 应用程序保持不变),git push origin master 将根本不起作用(Everything up-to-date)当然 Openshift 不会重新部署我的应用程序,这意味着它不会t 为我更新最新的子模块快照工件。

那么,如何解决这个问题呢?我试过rhc restartrhc reload,但它们不起作用。有没有类似rhc redeploy的命令?

【问题讨论】:

  • git push origin master -f ?
  • 它不起作用。我认为``` git push --force```用于覆盖repo上的源代码,它不是本地ref的祖先。
  • @rAy:没错,OpenShift 仅在推送不同的提交时才触发部署,然后是已经存在的提交。

标签: maven openshift openshift-client-tools


【解决方案1】:

你可以跑

rhc app deploy HEAD -a <appname>

如果您使用的是命令行工具

【讨论】:

    【解决方案2】:

    您可以通过 ssh 连接到您的 openshift 应用程序来开始部署步骤。从https://openshift.redhat.com/app/console/applications/ 检查您的 ssh 行 -> 单击您的应用程序,然后单击“想要登录到您的应用程序?”。查看https://www.openshift.com/developers/remote-access 获取详细帮助(感谢 RustyTheBoyRobot)。

    进入后,运行:

    gear deploy
    

    【讨论】:

    • 您的链接现在已失效。这与您最初链接的内容相似吗? openshift.com/developers/remote-access
    • 我认为“gear”是现在运行的合适二进制文件。所以步骤可能是 'rhc ssh -a
    【解决方案3】:

    您确定您已提取并提交了对子模块的最新更改吗?可能发生的情况是对所需子模块提交的引用未更新,因此即使子模块已更改,您的项目也并不真正了解它。我相信git submodule status 应该向您展示您的主要项目目前知道的提交。

    要更新此参考,请关注these directions

    [main]$  cd ./subm
    [subm]$  git pull origin/master   # or fetch then merge
    [subm]$  cd ..
    [main]$  git commit ./subm -m "Updated submodule reference"
    

    如果您确实在最后一步提交了更改,那么 OpenShift 应该适当地更新它(因为这次,git repo 发生了更改)。

    【讨论】:

    • 我认为这实际上是对 OP 问题的正确答案。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-27
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 2016-02-14
    相关资源
    最近更新 更多