デプロイツール、最近は便利なものがたくさんありますね!
自分はいつもCapistrano3なんですが、最近Rocketeerを触ってみたりしてPHP製のデプロイツールもいいものが揃ってきました。
そんな中、日本国内ではほとんどエントリを見かけないのに実は結構使いやすいものを紹介しましょう。
composer global require "laravel/envoy=~1.0"プロジェクトの直下にインストールする方はcomposer.jsonに追加するだけです。
"require-dev": { "mockery/mockery": "0.9.*", "phpunit/phpunit": "~4.0", "phpspec/phpspec": "~2.1", "barryvdh/laravel-ide-helper": "~2.0@dev", "satooshi/php-coveralls": "dev-master", "laravel/envoy": "1.*" },ちなみにrequire-devは開発時のみに利用するものとかを書きましょう。
$ composer install --no-dev
$ envoy init user@192.168.1.1ユーザー名@リモートサーバ名やipなどとします。
@servers(['web' => 'user@192.168.1.1']) @task('deploy') cd /path/to/site git pull origin master @endtaskもう一目瞭然でしょう。
$ envoy run deployです。
@servers(['web' => 'user@192.168.1.1'], 'web2' => 'user@192.168.1.2'])配列で追加していきます。
@servers(['web' => 'user@192.168.1.1'], 'web2' => 'user@192.168.1.2']) @task('deploy', ['on' => ['web']]) cd /path/to/site git pull origin master @endtaskタスクに対してonでどのサーバで実行するのかを記述します。
@servers(['web' => 'user@192.168.1.1', 'local' => '127.0.0.1'])localという名前はなんでもいいんですが、127.0.0.1かllocalか、localhostと指定します。
@include('vendor/autoload.php'); @setup $hoge = 1; @endsetup @servers(['web' => 'user@192.168.1.1', 'local' => '127.0.0.1']) @task('deploy', ['on' => ['local']]) echo {{ $hoge }} @endtaskこれを実行するには、
$ envoy run deployとなります。
@task('deploy', ['on' => ['local']]) echo {{ $hoge }}; @if(isset($message)) echo {{ $message }}; @endif @endtaskとすると、
$ envoy run deploy --message="hoge"これで利用できます。
@macro('macro') deploy somethingTask @endmacroマクロ内のタスクは上から順に実行されます。
$ envoy run macroだけです。引数が必要でしたら同じように指定するだけです。
laravel 38
DTM 0
music 0
PHP全般 24
食 0
JAPAN 1
WORLD 1
RDBMS 1
NoSQL 1
NewSQL 1