デプロイツール、最近は便利なものがたくさんありますね!
自分はいつも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