2014-09-21 109 views
1

我知道这是之前问过的,但我找不到一个解决方案,它不涉及公开存储库和/或使用https在URL中使用密码(而不是密钥使用ssh) 。来自私人回购的Openshift SSH错误克隆子模块

我的问题基本上不是有描述的一样:https://www.openshift.com/forums/openshift/gitssh-in-bashprofile-not-working-for-git-push-and-causes-error-cloning-submodules

长话短说有一个子模块和一个主要的应用程序都存储在GitHub上的私人git仓库。在openshift上,由于SSH验证问题,实例尝试更新子模块时,部署推送失败。

按照上面的线程建议,我尝试设置一个git包装器,将key和know_host文件放在app-root数据目录中,并设置一个GIT_SSH环境变量(使用.bash_profile,rhc set-env,pre_build hook或Steven Merrill GIT SSH助手盒)。当你在机器中使用ssh时,它工作正常,但是在执行部署推送时它不会像GIT_SSH使用默认的那个,而不是新设置的那样。

我的问题:

  1. 无论如何,我都将置为不只是当我在机器的所有SSH连接时使用的GIT_SSH?
  2. 任何方式我可以禁用git子模块更新--init --recursive,以便我可以通过脚本后启动它?
  3. 为什么SSH公钥在Openshift中不可见并且k​​nown_hosts不可写?

感谢您的帮助!

编辑: 同样,当我在机器中SSH并执行“齿轮部署HEAD”时,使用/var/lib/openshift//.ssh/known_hosts代替/ var/lib/openshift // app-root /data/.ssh/known_hosts

回答

0

我对你的问题的猜测:

  1. 我不这么认为:这将需要设置在bash的配置文件中的变量,但是这无法修改。我尝试使用rhc evn set命令,但it did not work
  2. 没有一个,我知道
  3. 我认为这是出于安全原因。用户只能写$ OPENSHIFT_DATA_DIR

但是,回到你的来源问题,我想你可以使用我Openshift: how to install python modules from private repository?用同样的方法。

我找到的解决方案并不是最佳的,但至少我不需要使用登录名/密码对来访问我的私人回购站。