2015-06-24 5 views
3

Я пытаюсь использовать Slim на OpenShift со свободным узлом. Я могу запустить composer update с сеансов SSH без каких-либо проблем.Как обновить композитор на OpenShift?

Единственная проблема - каждый раз, когда я хочу зафиксировать файлы через git Мне нужно пойти в консоль и снова запустить composer install. Мой вопрос в том, есть ли простой способ обхода этого? Я попробовал Баш скрипт в /project/.openshift/action_hooks/post_deploy но сервер не создает папку поставщика по времени выполнения/репо

+0

'но серверы постоянно меняются, и это невозможно сейчас. Я не мог понять причину. В моем развертывании у меня есть сценарий post_deploy (+ x) внутри папки .openshift/action_hooks, содержащей 'cd $ OPENSHIFT_REPO_DIR && composer install' –

ответ

4

Я всегда делаю это с помощью action hooks:

Внутри моего проекта каталог I имеют сценарий, который называется /project/.openshift/action_hooks/post_deploy, где post_deploy - это сценарий bash. Здесь идет то, что я использую:

#!/bin/bash 

export MY_PHPCOMPOSER=$OPENSHIFT_DATA_DIR/composer.phar 

# if composer not exists, download 
if [ ! -f $MY_PHPCOMPOSER ]; then 
    cd $OPENSHIFT_DATA_DIR 
    echo "Downloading composer..." 
    php -r "readfile('https://getcomposer.org/installer');" | php 
fi 

$MY_PHPCOMPOSER -n -q self-update 
cd $OPENSHIFT_REPO_DIR 
# install 
php -dmemory_limit=1G $MY_PHPCOMPOSER install 

Так post_deploy скрипт будет выполнять каждый раз, когда вы нажимаете, который ваш репо в openshit. Он работает как шарм!

Примечание стороны

Поскольку не всегда версия этого OpenShift композитора обновляется это безопасно , чтобы загрузить новую копию композитора и использовать его. Кроме того, не забудьте настроить параметры разрешений.

Полезные ссылки

+0

Я добавил скрипт раньше, проблема заключается в том, что поставщик не создается в/app- root/runtime/repo – cardeol

+0

Я не хочу запускать «компоновку установки» каждый раз, когда я фиксирую файлы – cardeol

+0

Уверен, что вы делали что-то неправильно. Также вы не хотите запускать «компоновку установки», но вы ДОЛЖНЫ делать это каждый раз, когда вы нажимаете свое репо. Это как открыть работу, и вы не можете это изменить! – felipsmartins

0

Я знаю, что мой ответ запаздывает, но в соответствии с OpenShift documentation вы можете включить composer install после каждой сборки, просто создавая маркер файл:

touch .openshift/markers/use_composer 
Смежные вопросы