[英]How to run (or should I run) Composer on Openshift?
我試圖在Openshift上創建ZendFramework的Skeleton應用程序。 我使用這些指令創建了一個PHP5應用程序並在本地克隆它。 我在存儲庫中克隆了ZendFramework框架應用程序,然后運行Composer以在本地安裝依賴項。
然后我將我的存儲庫推送到Openshift,但是我收到以下錯誤消息:
Fatal error: Uncaught exception 'RuntimeException' with message
'Unable to load ZF2. Run `php composer.phar install`
or define a ZF2_PATH environment variable.' in
/var/lib/openshift/559d4d8f500446844700002b/app-
root/runtime/repo/init_autoloader.php:51 Stack trace: #0
/var/lib/openshift/559d4d8f500446844700002b/app-
root/runtime/repo/public/index.php(18): require() #1 {main} thrown in
/var/lib/openshift/559d4d8f500446844700002b/app-
root/runtime/repo/init_autoloader.php on line 51
這表明我需要在Openshift上運行Composer。 我該如何實現這一目標?
在我的本地存儲庫中, /vendor
目錄中填充了依賴項目錄。 但是,在提交中忽略/vendor
。 我可以嘗試提交並推送它,但這是正確的方法嗎? 它看起來不干凈。
基本上,您需要在OpenShift上自動執行每個構建的composer install
。
您可以通過在文件夾.openshift/markers
添加名為use_composer
的標記文件來完成此操作。
.openshift/markers/use_composer
參考: https : //developers.openshift.com/en/php-markers.html
如果你需要做的不僅僅是composer install
,比如安裝Composer,使用action_hooks
是更好的選擇。 它們允許使用bash腳本。
請參閱https://developers.openshift.com/en/managing-action-hooks.html
.openshift/action_hooks/build
:
#!/bin/bash
export COMPOSER_HOME="$OPENSHIFT_DATA_DIR/.composer"
if [ ! -f "$OPENSHIFT_DATA_DIR/composer.phar" ]; then
curl -s https://getcomposer.org/installer | php -- --install-dir=$OPENSHIFT_DATA_DIR
else
php $OPENSHIFT_DATA_DIR/composer.phar self-update
fi
( unset GIT_DIR ; cd $OPENSHIFT_REPO_DIR ; php $OPENSHIFT_DATA_DIR/composer.phar install )
安裝依賴項的最佳方法是從操作掛鈎,即在部署期間由盒式磁帶運行的腳本。 我會使用deploy
鈎子:
#!/bin/bash
# @file
# .openshift/action_hooks/deploy
COMPOSER_DIR="$OPENSHIFT_DATA_DIR/bin"
function install_composer() {
echo 'Installing Composer'
if [ ! -d "$COMPOSER_DIR" ]
then
mkdir -p $COMPOSER_DIR
fi
curl -s https://getcomposer.org/installer | php -- --install-dir=$COMPOSER_DIR
}
if [ ! -x "$COMPOSER_DIR/composer" ]
then
install_composer
fi
$COMPOSER_DIR/composer self-update
cd $OPENSHIFT_REPO_DIR
$COMPOSER_DIR/composer install
還記得讓這個腳本可執行: chmod +x .openshift/action_hooks/deploy
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.