簡體   English   中英

如何在Openshift上運行(或者我應該運行)Composer?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM