我是否可以使用现有的git仓库与openshift?(Can I use my existing g

2019-06-18 09:58发布

是否有必要对只openshift混帐回购协议? 我已经有到位桶/ GitHub的git仓库,宁愿只推那里。 我可以简单地钩到它,这样openshift得到暗示?

或者为了简化,我只推在github上,但是当我想部署,我做openshift什么?

我没有检查这个 ,但它让我感到困惑:它在谈论合并退出和新(openshift)混帐?

Answer 1:

我有你不习惯使用git够了吗印象。 我建议你进入混帐充分了解如何把你的代码openshift。 不过让我尝试解释一下你所涉及的步骤:正如你在一般的git做,在这里选择的方法是克隆你的其他git仓库到本地计算机(除权到位桶。):

git clone <bitbucket-repo-url>

您的本地克隆有那么你的其他回购(到位桶等),远程回购。 您的远程回购存储与别名“原点”(由git的使用,如果你复制默认的别名)。 然后,您的openshift回购远程添加到您的克隆。 你这样做,虽然明确使用您添加远程回购的别名 - 我使用“openshift”这里别名:

git remote add openshift -f <openshift-git-repo-url>

为了然后就可以从当地的混帐回购协议推代码openshift你首先要与当地到位桶克隆合并您openshift回购。 你这样做,通过在本地发行:

git merge openshift/master -s recursive -X ours

使用这个命令可以让Git与您当地的混帐回购协议合并在openshift git仓库主分支。 你告诉它使用递归的并购战略合并,在出现冲突时选择你的(“我们”)的版本。

一旦执行合并你准备把你的git回购协议openshift。 你这样做,这样做:

git push openshift HEAD

你告诉混帐推本地代码的HEAD分支的名为“openshift”(我们存储在openshift混帐回购协议的别名,一些段落进一步上涨)的远程回购。

顺便说一句。 我写了JBoss的工具博客这是演示如何几个月前使用openshift-Java的客户端: https://community.jboss.org/wiki/Enable-openshift-ciFullExampleUsingOpenshift-java-client 。 你会发现在最后一段上述步骤,“我们快到了”。



Answer 2:

我知道这个问题是2岁和@ adietisheim的答案已被接受。 我个人不喜欢的openshift回购融入我的本地克隆,因为我不想给OpenShift回购混入我的公共回购的主分支。

假设你已经添加了遥控器使用git remote add openshift <openshift-git-repo-url> ,这里是我会做:

创建新的本地分支openshift基础上, master分支。

git checkout -b openshift

你可以把在树枝上作了一次提交openshift如您的应用程序部署配置。 然后,按下当前分支在OpenShift库了标志的远程REF匹配主-f覆盖在远程一切master分支。

git push openshift master -f

每当我想部署我的应用程序OpenShift,我想看看当地openshift分支与合并master分支,然后强行推OpenShift,但是-f可能不需要下一个推:

git checkout openshift
git merge --no-ff master
git push openshift master -f


Answer 3:

从你的项目文件夹,请

git remote add backup user@server:/path/to/git/test.git
git push backup master

你可以阅读从一个存储库推两个混帐远程起源和更改远程Git起源 。



Answer 4:

我同意@ adietisheim的回答是:你需要openshift在部署之前更好地了解混帐=)

现在,即使你理解git的,它不一定有明显的如何部署现有的回购协议,如果你的目录结构不匹配openshift所需的目录结构,如果你想保持你的旧目录结构。

对于这一点,我有以下建议:

  • 单独的选项是部署依赖从那些没有到不同的文件。 例如,我从其他设置成不同的文件作为单独的我的数据库设置:

    • settings_deploy / openshift

    • settings_deploy /本地主机

    然后符号链接到localhost测试,就像这样:

     ln -s settings_deploy/localhost settings_deploy_file 

    另一种方法是使用环境变量来检测主机:

     if 'OPENSHIFT_APP_NAME' in os.environ: //openshift configurations else: //localhost 

    这是一个有点简单,因为它可以让你把所有的CONFIGS上的一个文件。 这是一个有点不太普遍,因为如果有的话你的主机的另一个提供OPENSHIFT_APP_NAME环境变量(不太可能为这一个)的方法断裂。 不管怎样,你还是要明确分开什么是部署相关的,哪些不是。

  • 创建本地部署目录

  • 克隆初始openshift模板到它

  • 创建一个部署脚本:

    • 硬链接一切从旧的现有本地在正确的位置

      硬链接的快速创建和使用很少的内存

      你可以使用这样的:

      cp -lrf original_repo_dir deploy_repo_dir

    • 只保留正确的settings_deploy在部署回购文件:

      cd deploy_repo

      mv settings_deploy/openshift settings_deploy_file

      rm -r settings_deploy

    • 力推:

      cd deploy_repo

      git push -f origin master

    • 清洁部署回购:

      git reset --hard HEAD

      git clean -df

对于那些有兴趣在Django部署,我有一个例子我github上 ,特别是检查出deploy.sh脚本和项目projects/elearn它部署。



Answer 5:

您应该能够通过在现有的Git仓库通入管道资产

rhc create-app $APPNAME ruby-1.9 --from-code $GIT_LOCATION

远程Git仓库然后能够为OpenShift初始应用。

作为第二种可能性,可以通过跳过本地OpenSHift Git仓库的建立

rhc create-app $APPNAME ruby-1.9 --no-git

然后用上述的OpenShift远程Git仓库合并到本地Git仓库的步骤。



Answer 6:

Mohannd的答案是完美的,但我想总结一下完整的解决方案,在一些情况下,人需要它:

要使用您的GitHub库作为Openshift回购,现在没有完美的解决方案,因为,Openshfit使用git的钩来触发根据您提交的部署或重新部署。 然而,最聪明的办法是使用2回购(该openshift的一个和你的GitHub的一个),同时推动代码。

要做到这一点:添加远程命名为“所有”,并添加2个推URL到它。

git remote add all ssh://23456781234567@yourapp-namespace.rhcloud.com/~/git/yourapp.git
git remote set-url openshift-git-repo --push --add ssh://23456781234567@yourapp-namespace.rhcloud.com/~/git/yourapp.git
git remote set-url github-repo --push --add git@github.com:youruser/yourapp.git

然后设置远程命名为“所有”作为默认的推遥控:

git push -u all

要提交并推送你的代码,继续像往常一样:这将推动在2个遥控器和部署OpenShift

git add .
git commit -m "my commit"
git push

并观察结果:

[master 3fc96b2] my commit
 1 file changed, 2 deletions(-)
MyLaptop:myapp User$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 291 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
To git@github.com:User/myapp.git
   a036a44..3fc96b2  master -> master
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 291 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Stopping PHP 5.4 cartridge (Apache+mod_php)
remote: Waiting for stop to finish
remote: Waiting for stop to finish
remote: Building git ref 'master', commit 3fc96b2
remote: Preparing build for deployment
remote: Deployment id is 9037d37a
remote: Activating deployment
remote: Starting PHP 5.4 cartridge (Apache+mod_php)
remote: Application directory "/" selected as DocumentRoot
remote: -------------------------
remote: Git Post-Receive Result: success
remote: Activation status: success
remote: Deployment completed with status: success
To ssh://23456789@myapp-namespace.rhcloud.com/~/git/myapp.git/
   a036a44..3fc96b2  master -> master
MyLaptop:myapp User$

希望这可以帮助



Answer 7:

我跑进部署预先存在的代码库来Openshift问题。 在我的特殊情况下,我就开始想部署一个Tomcat Web应用程序,包括在.openshift文件夹中的Openshift Tomcat的配置文件是至关重要的。

什么固定对我来说是.openshift夹在我现有的源代码树的包容,以及在我的Maven pom.xml文件中列入openshift轮廓。

这是极有可能会被新openshift上游的一个合并资源库发生一样。 对我来说,这是在adietisheim的伟大回答“为什么”背后下面的句子:

“然后,为了能够从本地git仓库推代码openshift你首先要与当地到位桶克隆合并您openshift回购。”

在我的情况下,需要这样的合并,从.openshift目录中获取配置文件。 花了很长的时间来找出适合我,因为推不.openshift目录仍然取得了我的应用程序建立并成功地部署。 我看到的唯一行为是失踪jsp文件的报告,这让我觉得这个问题是关系到我自己的web.xml和servlet配置。



Answer 8:

如果您使用github上,你可以在你的GitHub库进行了更改,每次配置特拉维斯来作出部署

http://docs.travis-ci.com/user/deployment/openshift/



Answer 9:

有一种方法可以做你想做的,即跳过Openshift的回购。 你需要做的是建立一个詹金斯,并让它查询自己的资料库的内容。

这里有一个链接,介绍了如何从无到有建立起来: http://blog.anthavio.net/2014/01/deploy-to-openshift-from-github.html



Answer 10:

如果您使用的是Java再有就是是一种替代方法。 但即使在这种方法,你仍然会使用OpenShift git仓库。 通过OpenShift提供Git仓库,你如何给OpenShift你的代码,你的部署(S):

你可以 - 而不是提交代码到OpenShift混帐回购协议 - 简单地给它的战争文件。 你克隆OpenShift git仓库到本地计算机。 然后,建立从您的应用程序源的战争,并把这场战争到部署文件夹OpenShift混帐回购协议(克隆)内。 然后,添加,提交和推送本地克隆OpenShift。 一旦推成功执行,在JBoss AS7会挑你的战争和部署。



Answer 11:

放轻松!

第1步:创建应用程序。 用你喜欢的方式(从gitRepository,预生产商Openshift等)。 如果您使用控制台梅托德
步骤2: rhc git-clone nameApp
步骤3: rhc app-configure nameApp --auto-deploy
第4步:享受!



文章来源: Can I use my existing git repo with openshift?
标签: git openshift