Azure Web サイトに Ruby をインストールするデプロイスクリプトの謎挙動に悩まされっぱなしで疲れたので、少し気分を変えて PHP の Composer をデプロイ時に自動実行するスクリプトを作ってみました。
と言っても、基本的には Ruby の時と考え方は同じで、PHP 向けのデプロイスクリプトを生成して、それに php composer.phar install の実行を追加するだけです。
IF EXIST "%DEPLOYMENT_TARGET%\composer.json" ( cd %DEPLOYMENT_TARGET% IF NOT EXIST "%DEPLOYMENT_TARGET%\composer.phar" ( call curl -s http://getcomposer.org/installer | php > nul IF !ERRORLEVEL! NEQ 0 goto error ) call php composer.phar install IF !ERRORLEVEL! NEQ 0 goto error )
特に説明する必要すら感じないですが、wwwroot 以下に composer.json が存在している場合に composer.phar install を実行します。Composer 自体がインストールされていない場合は、サクッと自動でインストールするようになってます。
実際に Azure Web サイトの Git にデプロイした時の出力が以下のような感じ。
パッケージのインストールが正常に終わっていることが確認できます。
一応 wwwroot 以下も確認しておくと、vendor ディレクトリが生成されており、その中には monolog や autoloader の設定が生成されていました。
PHP は Azure Web サイトに最初からインストールされているので、挙動が安定している感じがあります。
今回作成した deploy.cmd を Gist に上げておきました。どうぞご自由にお使いください。
Custom Deployment Script for PHP composer
気分が良ければ適当にリポジトリをでっちあげるかもしれません。