BPSの福岡拠点として一緒にお仕事させて頂いてます、株式会社ウイングドアの坂本です。
ちょっと前までは主にPHP案件でFuelPHP触ったりLaravel触ったりしていたのですが、
最近Railsやアプリ案件メインの状態に。
久しぶりにLaravelで遊んでみようと思ってみたものの、気がつけば1年以上触ってなかったためあらゆるもののバージョンが心配。
ひとまず遊ぶための開発環境なのでもっと手軽に整えたい、ということで先週ちょっとだけLaradock触ってみました。
Laradockとは
A full PHP development environment for Docker.
公式Introductionよりより
Dockerとgitさえ使えれば用意できるPHPの開発環境。
「full PHP development environment」いい響きです。
「Lara」がつくのでLaravelのための環境かと思いきやSymfonyやWordPressも想定しているようです。
その他の手段
ちなみにLaravelの場合は環境作成のサポートが手厚く、以下の手段が用意されています。
- Laravel Homestead
- Vagrant box
- Ubuntu 18.04ベース
- gitやnodeも入れてくれてる
- Laravel Valet
- 「MacミニマリストのためのLaravel開発環境」
- バックグランドでNginxが実行されるようにしているらしい
- 当然のことながらMac限定
他にももちろんXAMPPを利用したり、開発機に直接PHPをインストールしたり…というのも可能ですが、
- 開発実行環境は仮想環境に持っていきたい
- 開発端末のストレージの容量が心配になってきたので小さく済みそうな方が良い
- Dockerをもうちょっと使えるようになりたい
という考えもあり、今回はLaradockを採用しました。
前提
- 環境はMac Mojave10.14.2 (直前にバージョンアップしてみました)
- Laravelについて、構築方法などはまるっと除外してます
- 最終的にはLaravel+Vue.jsの複数アプリを動かせるようにしたい
参考
- Laradocドキュメント
- Laravel + Nuxt.js の API アプリケーション開発 #1 環境構築 – chatbox blog
- Docker環境でLaravelを構築するまで、わずか15分。 - Qiita
- Laradockでの環境構築方法2パターンを細かめに説明 - Qiita
Laravelが動くまで
公式のドキュメント通りのコマンド実行 以上!
https://laradock.io/getting-started/
詰まることなくあっさりLaravelのデフォルト画面が!
打ったコマンドもだいたいこれだけです
git clone https://github.com/Laradock/laradock.git
cd laradock
cp env-example .env
vim .env
cd mysql/docker-entrypoint-initdb.d
cp createdb.sql.example createdb.sql
vim createdb.sql
cd ../
vim my.cnf
cd ../
cd nginx/sites/
mv default.conf default.conf.bak
cp laravel.conf.example app.test.conf
vim app.test.conf
cd ../../
docker-compose up -d nginx mysql
docker-compose exec mysql bash #(ここでDBの作成)
docker-compose exec --user=laradock workspace bash #(ここでLaravelのProject作成)
docker-machine ip
sudo vim /etc/hosts
とても楽々、ありがとう!!
DB migrationも問題なく… と思いきや
ここまで来てるのならあとは問題ないだろうと思ったら
マイグレーションのコマンド、php artisan migrate
でエラーが!
(ログを残し損ねました)
エラー内容的にDBの権限がなく弾かれてる様子。
事前にDBも権限も作成、設定してるし、
DBの設定も何度確認しても問題なさそう、と思ったら同じ現象に行きあった人が。
Laradockの.envファイルのデフォルトには以下のように最新版のバージョンを設定するようになっており、
インストールされているmysqlバージョンは8.0.13です。
この場合.envでデフォルトのユーザーを指定するのに加え、認証方式を変更してあげないといけないらしい、ということで変更したら問題なくmigrationが実行されました。
おわり
次はNuxt.jsを設定してみよう…とyarn install
して設定して…ごちゃごちゃしていたらここでタイムアウト。
続きはまた今度に。
Laradockの感想としては「楽!!」の一言。
その昔、環境作成のためにあれやこれやinstallし、設定し、バージョンが違い上手くいかず…としてた頃が懐かしいです。
今はまだ初歩の初歩を触っただけなので、これからどんどん活用していきたいです。
株式会社ウイングドアでは、Ruby on RailsやPHPを活用したwebサービス、webサイト制作を中心に、
スマホアプリや業務系システムなど様々なシステム開発を承っています。