2016-04-05 5 views
0

Я искал несколько часов в сети и попробовать & ошибку, но я не понимаю:Как получить доступ к собственному Bitbucket репо в cloudfoundry приложения (развертывание SSH ключа перед композитором)

Как я могу использовать частный Bitbucket repos в composer.json для приложения, попавшего в облачную литейную среду?

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

Проблема заключается в том, что мне нужно для настройки публичной аутентификации (ключ SSH) перед композитором в запуске облака литейный запущен при.

Папка .ssh должна быть $ HOME /../. Ssh, которая находится вне папки приложения, поэтому я не могу напрямую нажать клавиши. Я обнаружил, что с помощью скриптов bash в .profile.d я мог бы выполнять некоторые команды «mv», но эти сценарии bash запускаются AFTER composer.

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 секретный ключ в мерзавца репо и в руках 3-го поставщика партии (при загрузке приложения на CF) плохая идея - не делайте этого!

РНР-buildpack, который используется при нажатии PHP приложений на CF поддерживает композитор с частными реестрами в безопасном режиме, но, к сожалению только для Github на данный момент:

Он работает путем получения Github OAuth ключа первым и обеспечивая его к бывалый, используя cf set-env см https://github.com/cloudfoundry/php-buildpack/blob/master/docs/composer.md#supply-a-github-token

Bitbucket также предлагает OAuth лексемы, но поддержка композитора пришли всего несколько дней назад: https://github.com/composer/composer/pull/5055 Так что не поддерживается PHP-buildpack, но я предполагаю, что это будет скоро.

Вы не только с этой проблемой: How to access private BitBucket repo in cloudfoundry app (Deploy ssh key before composer) - это про герою, но относится и к CF, так как у них есть совместимые сборные.

решение сейчас: Если я интерпретирую документ правильно, вы должны быть в состоянии упаковать зависимости локально с помощью composer install и нажмите все приложения с зависимостями: https://github.com/cloudfoundry/php-buildpack/blob/master/docs/composer.md#vendoring-dependencies