2016-04-05 12 views
0

我搜索好几个小时在网上和尝试&错误,但我不明白这一点:如何访问私人到位桶回购在cloudfoundry应用程序(部署作曲家之前SSH密钥)

我如何使用私人到位桶在composer.json中为推送到云代工环境的应用重复使用?

"repositories": [ 
    { 
    "type": "git", 
    "url": "[email protected]:blabla/blabla.git", 
    "reference": "package" 
    } 
] 

问题是,我需要设置公共身份验证(ssh密钥)之前,作曲家在云代工厂启动startet。

.ssh文件夹必须是$ HOME /../。ssh,它不在应用程序文件夹中,因此我无法直接按键。 我发现,使用.profile.d中的bash脚本,我可以执行一些“mv”命令,但是这些bash脚本在作曲者之后运行。

mkdir ./../.ssh 
mv ./preprocess/ssh/id_rsa ./../.ssh/id_rsa 
mv ./preprocess/ssh/id_rsa.pub ./../.ssh/id_rsa.pub 
mv ./preprocess/ssh/known_hosts ./../.ssh/known_hosts 
chmod 600 ./../.ssh/id_rsa 
chmod 600 ./../.ssh/id_rsa.pub 
chmod 644 ./../.ssh/known_hosts 
chmod 700 ./../.ssh 

作曲家本身有一个预安装cmd,但即使如此,键不会被识别。

"scripts": { 
    "pre-install-cmd": "sh ./preprocess/pre-install-cmd.sh" 
} 

这是如何正确完成的?是否有一些特殊的钩子脚本?在放置ssh文件夹之后我需要添加一些东西吗?

感谢您的帮助

回答

1

把你的SSH私钥到一个混帐回购协议和第三方提供商的手中(上传应用程序到CF的时候)是一个坏主意 - 不这样做!

推动PHP应用到CF时使用的PHP-buildpack支持与私营征信作曲家以安全的方式,但遗憾的是仅适用于Github上的那一刻:

它通过获取Github上OAuth的重点第一,其提供给使用cf set-env的驿站,看到https://github.com/cloudfoundry/php-buildpack/blob/master/docs/composer.md#supply-a-github-token

到位桶还提供OAuth凭证,而是由作曲家支持只是一些天前抵达:https://github.com/composer/composer/pull/5055 所以它不是由PHP-buildpack支持,但我认为这将是不久。

你不是唯一一个有这个问题的人:How to access private BitBucket repo in cloudfoundry app (Deploy ssh key before composer) - 这是关于heroku的,但也适用于CF,因为它们具有兼容的buildpack。

解决方案现在: 如果我正确地解释文档,你应该能够通过使用本地composer install打包的依赖关系,推动整个应用程序与依赖关系: https://github.com/cloudfoundry/php-buildpack/blob/master/docs/composer.md#vendoring-dependencies

相关问题