[Laravel学習]laravel/envoyを使ってデプロイを自動化してみよう(Part6)
[Laravel学習]laravel/envoyを使ってデプロイを自動化してみよう(Part6)
手動でデプロイ(アップロード&設定)すると、作業忘れとかが起こって色々と心配。デプロイツールでコマンド一つでデプロイできたらば、問題があったときにそこを修正すれば安定しているということで、laravel用のデプロイツールがあるのでお手軽らしいから、使ってみることに。
[目次]
- laravel/envoyをインストール
- 設定
- デプロイしてみた
laravel/envoyをインストール
まずはインストール
$ composer global require "laravel/envoy" Changed current directory to /Users/〇〇/.composer Using version ^1.3 for laravel/envoy ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 9 installs, 0 updates, 0 removals - Installing nategood/httpful (0.2.20): Downloading (100%) - Installing symfony/translation (v3.4.2): Downloading (100%) - Installing nesbot/carbon (1.22.1): Loading from cache - Installing psr/simple-cache (1.0.0): Loading from cache - Installing psr/container (1.0.0): Loading from cache - Installing illuminate/contracts (v5.5.17): Downloading (100%) - Installing doctrine/inflector (v1.2.0): Loading from cache - Installing illuminate/support (v5.5.17): Downloading (100%) - Installing laravel/envoy (v1.3.4): Downloading (100%) symfony/translation suggests installing symfony/config () symfony/translation suggests installing symfony/yaml () illuminate/support suggests installing illuminate/filesystem (Required to use the composer class (5.2.*).) illuminate/support suggests installing symfony/var-dumper (Required to use the dd function (~3.3).) Writing lock file Generating autoload files
globalをつけてるからユーザのホームディレクトリにインストールされるのかな?(あんまりわかってない)
さらに、composer.jsonに書いてcomposer updateしたらあかんのかな?(とりあえず置いといて、将来的にわかれば又記載しよう(汗))
で読んでると composer global require "laravel/envoy"
をしたあとは composer global update
をしろと書いてあるのでやっとく。
$ composer global update Changed current directory to /Users/tacky2k/.composer Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 0 installs, 5 updates, 0 removals - Updating symfony/process (v3.4.0 => v3.4.2): Downloading (100%) - Updating symfony/filesystem (v3.4.0 => v4.0.2): Downloading (100%) - Updating symfony/debug (v4.0.0 => v4.0.2): Downloading (100%) - Updating symfony/console (v3.4.0 => v3.4.2): Downloading (100%) - Updating laravel/installer (v1.4.1 => v1.5.0): Downloading (100%) Writing lock file Generating autoload files
幾つかのパッケージがバージョン上がるけどだいじょうぶなんかな?
特にlaravel/installerはv1.4.1からv1.5.0にメジャーバージョンアップしてるけど、、、、
設定
Envoy.blade.phpというファイルを作って設定を書くって書いてあるけど、どこに配置するの?ということで試しにresourcesのviewsなかに置いて実行してみる。
//project/resources/views/Envoy.blade.php @servers(['tanba-events' => ['ユーザ名@IPアドレス']]) @task('foo', ['on' => 'tanba-events']) ls -la @endtask
試しに実行
$ envoy run deploy In TaskContainer.php line 328: Task "deploy" is not defined. run [--continue] [--pretend] [--path PATH] [--]
???あんまわからんけど –helpとかlistsとかつけて見ると、どうも@taskの中の最初の変数をデプロイするみたいだから、envoy run fooにするか @task('deploy’〜にするかしないといけないみたい。
$ envoy run foo password: パスワード
これでls -alの内容が返ってきました。バッチシ!
ということで、デプロイできるように書いてみた
@servers(['tanba-events' => ['ユーザ名@IPアドレス']]) @setup $dir = "/var/www/tanba-events" @endsetup @macro('deploy') composer git artisan slack @endmacro @task('composer') cd $dir composer update -y // composer install --no-dev --optimize-autoloader @endtask @task('git') cd /var/www/ git pull origin master @endtask @task('artisan') cd $dir php artisan down php artisan migrate php artisan cache:clear php artisan config:cache php artisan route:cache php artisan view:clear php artisan up @endtask
デプロイしてみた
エラーが出ます、、、、
$ git config --global user.name "名前" $ git config --global user.email username@gmail.com $ git config --global push.default matching $ git config --global alias.co checkout $ git remote add origin https://tacky2k@bitbucket.org/tacky2k/hoge.git
laravel deproyの中でのartisan がうまく走りません。もう少し研究して、うまくいく方法を探したいと思います。
色々紆余曲折あります。また設定なんかは修正したいと思いますが、うまく行きません。
参考
https://qiita.com/bmf_san/items/61e29a7c20108df64bc7
https://laravel.com/docs/5.5/envoy
ディスカッション
コメント一覧
まだ、コメントがありません