2017-02-28 5 views
1

symfony2アプリケーションをbluemixにデプロイしようとしていますが、成功していません...この種の問題についていくつかの記事を見てきましたが、回答がないか廃止されているか、問題。BluemixにSymfony2をデプロイ

symfonyの標準版ディストリビューションに基づくsymfonyアプリケーションは、フロントエンドを持っているので、バックエンドフォルダに移動しました。 しかし、composer.jsonはルートディレクトリにあり、バックエンドフォルダを参照します。これが唯一の変更です。

すべてが誤りである、ここで、PHPのbuildpackでBluemix上でローカルに正常に動作しますが、ない:Bluemixオン

Generating autoload files 

    [RuntimeException]                        
    Could not scan for classes inside "backend/app/AppKernel.php" which does not appear to be a file nor a folder 

ENVがmanifest.ymlを通じてprodに設定されている、と我々は試してみました作曲は、ローカルに同じ構成でインストールします。

applications: 
- name: myapp 
    random-route: true 
    memory: 128M 
    env: 
    SYMFONY_ENV: prod 
    #BP_DEBUG: true 

をこのエラーは、私が詳細モードで取得するものであり、私は冗長モードなしで、まったく同じを持っています。私たちはここにある、Bluemix上ノー-devのモードで実行フル options.json:私は目的をデバッグするためのスクリプトを追加しようとしてきた

{ 
    "COMPOSER_INSTALL_OPTIONS": [ "--no-dev", "-vvv"] 
} 

。ローカルではうまく動作しますが、Bluemixでは動作しませんので、まったく役に立ちません。それはに(適切な場所を探して)設定が正しいように思える

$ ll backend/app/ 
    total 128 
    drwxr-xr-x 6 bob bob 4096 févr. 28 15:45 . 
    drwxr-xr-x 9 bob bob 4096 févr. 28 15:44 .. 
    -rwxr-xr-x 1 bob bob 101 févr. 23 11:37 AppCache.php 
    -rwxr-xr-x 1 bob bob 1394 févr. 24 11:32 AppKernel.php 
    -rwxr-xr-x 1 bob bob 263 févr. 23 11:37 autoload.php 
    -rw-r--r-- 1 bob bob 40956 févr. 28 15:45 bootstrap.php.cache 
    drwxr-xr-x 3 bob bob 4096 févr. 28 15:45 cache 
    -rwxr-xr-x 1 bob bob 3909 févr. 28 15:45 check.php 
    drwxr-xr-x 2 bob bob 4096 févr. 28 14:37 config 
    -rwxr-xr-x 1 bob bob 897 févr. 22 15:28 console 
    -rwxr-xr-x 1 bob bob 143 févr. 23 11:37 .htaccess 
    drwxr-xr-x 2 bob bob 4096 févr. 28 14:37 logs 
    -rwxr-xr-x 1 bob bob 1358 févr. 23 11:37 phpunit.xml.dist 
    drwxr-xr-x 3 bob bob 4096 févr. 23 11:37 Resources 
    -rwxr-xr-x 1 bob bob 34272 févr. 28 15:45 SymfonyRequirements.php 

"scripts": { 
    "pre-autoload-dump": [ 
     "echo TEST" 
    ], 
    ... 
} 

ファイルが存在し、正しい場所にあります。composer.jsonからの抜粋しますcomposer.json。同じファイルを任意の問題なく、ローカルに使用されている:私は考えている

"extra": { 
     "symfony-app-dir": "backend/app", 
     "symfony-web-dir": "backend/web", 
     ... 
} 

最後の事は、私はCFだけで、最新のファイルが取らされていることを確認するために、新たなCFプッシュを行う前に、myappのを削除しなかったことですBluemixを考慮してください(なぜ私はpre-autoload-dumpスクリプトがBluemixで実行されないのか分かりません)

ありがとうございました!

答えて

1

私はこの問題を発見しました。

まず、私はこれを行うことによって、それを見つけた:

私はコンテナが実行されることを確認するために、作曲にノースクリプトと無オートローダのオプションを追加していると私はそれに接続することができますよファイルシステムを参照してください。それがなければ、コンテナは破壊され、何が起こったか知る方法はありません。

"COMPOSER_INSTALL_OPTIONS_DEBUG": [ "--no-dev", "-vvv", "--no-autoloader", "--no-scripts"] 

その後、私は(唯一のサンディエゴで)SSHの入った容器に接続されています:

cf enable-ssh 
cf ssh 

次に、ファイルシステムを見ることで、私はバックエンドフロントエンドフォルダーことが判明htdocsフォルダーに入れられます。

私はのhtdocs /バックエンド/バックエンドだけではなく、/を参照するために、私のcomposer.jsonを変更しているし、すべてが正常に動作します。 composer.jsonファイルからサンプル:

"autoload": { 
     "psr-4": { "": "htdocs/backend/src/" }, 
     "classmap": [ "htdocs/backend/app/AppKernel.php", "htdocs/backend/app/AppCache.php" ] 
    }, 

問題は今、私は地元の環境との間で異なる動作を持っていることである(すべては./である)とコンテナ(すべてが/ htdocsの中にあります)、環境変数をサポートしていないcomposer.jsonでは、1つのファイルだけを使用するのが複雑になります。しかしそれは別の話です。

関連する問題