初めてでも確実に動くLaradockの起動までの手順(更新版)
前の記事、Facebook Laravel Japanグループに共有したところ、いくつか有益なフィードバックをいただきましたので、それを反映した形で、更新版を作成させていただきました。
内容は、laravelのプロジェクトを作成するところ以外はほとんど同じです。
ブログを更新した理由は
- 前の記事ではhost PCのphpでcomposerをインストールしました。host PCのphpのバージョンが、Laravel(PHP >= 7.1.3)のバーションと違う可能性があって、エラーを避けるため、host PCのphpを利用しないほうが良い
- 前の記事ではComposerもLaravelをhostにインストールしている形でしたが、できれば、全部Docker内に完結した方が理想、host PCの「環境汚染」もなくてhost PC環境に依存しなくて良い
上記の理由で、この更新版を作成しました!ご参考になればと思います。
Facebook Laravel Japanグループの皆さん、ありがとうございました!
目次
知識の用意
LaradockはlaravelのDocker開発環境です。
laravelはウェブアプリケーションを開発する絶大な人気をもつPHPフレームワークです。
もちろん、composerもsymphonyも登場します。
- https://www.docker.com/
- http://laradock.io/
- https://laravel.com/
- https://getcomposer.org/
- https://symfony.com/
Laradockは様々な技術スタックの組み合わせをあらかじめ用意して
その開発環境をDockerで簡単にスタートできる仕組みを作っています。
しかし、最初にLaradockを使うときに少し戸惑うことがあります。
この記事では、「初めてでも確実に動くLaradockの起動までの手順」をご紹介したいと思います。
これから、全部MacOSでの設定手順を説明します。(Windowsではないので、ご留意ください。)
また、この手順の説明の最後まで、スムーズに実施するには、MacOSの基本操作、Docker、PHP、composerなど多少知識と経験があったほうが望ましいです。
STEP-1 フォルダの用意
まず、自分のフォルダを一つ作ってください。
mkdir testlaradock cd testlaradock
これから、このフォルダの下にさらに二つのフォルダを作って行きます。
- laradock (githubからcloneします)
- project(あなたのプロジェクトフォルダ、これはcomposerでlaravelのプロジェクトを自動生成します。名前はなんでもいいです。)
STEP-2 clone laradock
まず、laradockをgithubからcloneします。
git clone https://github.com/laradock/laradock.git
STEP-3 環境ファイル作成
laradockのフォルダのenv_exampleを内容そのまま、.envファイルを作っておいてください。
STEP-4 一旦laradock起動
docker-compose up -d nginx php-fpm mysql workspace
しばらく、dockerの環境をbuildしたりします。少し時間がかかります。これは初回だけです。2回目以降はbuildが不要なので、起動が早くなります。
STEP-5 dockerコンテナに入る
dockerコンテナに入ってprojectを作成します。
docker-compose exec workspace bash
composer require "laravel/installer"
次は、あなたのプロジェクトを作成します。これから、あなたのプロジェクトを開発し発展させていくのはこのフォルダの下です。laradockはちょっと修正(STEP-6)がありますが、それ以外はほとんどいじることがなありません。
laravel new project
laravelのインストールが完了したら、dockerコンテナなから出ます。
exit
STEP-6 カスタマイズ
laradockのフォルダにある、STEP-3で作った.envファイルを下記のように
一番先頭のアプリのフォルダ(project)を指定してあげます。
# Point to the path of your applications code on your host APP_CODE_PATH_HOST=../project
STEP-7 起動!
laradockのフォルダで下記のコマンドを実行して再度dockerを起動します。
docker-compose up -d nginx php-fpm mysql workspace
docker-composeが完全に起動して、ブラウザーでhttp://localhostにアクセスして、この画面が表示されたら、成功です!
最後project側のデータベース接続情報
Laradockのではなく、projectの方の.envファイルを下記のように修正してください。そうでないと、マイグレーションがうまくできません。
DB_CONNECTION=mysql DB_HOST=mysql DB_PORT=3306 DB_DATABASE=default DB_USERNAME=default DB_PASSWORD=secret
まとめ
今回のバージョンは、dockerのコンテナに入って作業することによって
だいぶスッキリした感じになりました!
他にも何かフィードバックがあれば、よろしく御願い致します!