Laradockを使いLaravelの開発環境を作成する

laradockとは

Docker用の完全なPHP開発環境。
すばらしいPHP開発環境を提供するために事前に設定された、事前にパッケージ化されたDockerイメージが含まれています。
laradockはLaravelのコミュニティでよく知られています。プロジェクトはDockerでLaravelプロジェクトを実行することに焦点を当てて始まりました。その後、PHPコミュニティからの大規模な採用により、Symfony、CodeIgniter、WordPress、Drupalなどの他のPHPプロジェクトをサポートし始めました

laradock.io

開発用のディレクトリを作成

  • 以下コマンドで開発環境として利用するディレクトリを作成
mkdir -p ~/workspace/applications
cd ~/workspace/applications
  • Laradockのインストール
git clone git@github.com:laradock/laradock.git
  • 設定ファイルをコピー
cp ~/workspace/applications/laradock/env-example ~/workspace/applications/laradock/.env

nginxのconfの設定

  • 今回は laravel.conf.example をコピーしてそのまま使います
cp ~/workspace/applications/laradock/nginx/sites/laravel.conf.example ~/workspace/applications/laradock/nginx/sites/laravel.conf

hostsを編集する

  • 以下コマンドでhostsファイルを編集します
sudo vim /etc/hosts
  • 以下をhostsファイルのファイルの末尾に追加します
127.0.0.1   laravel.dev

コンテナ初回起動時に生成するデータベースの設定

  • laradock側のenvに作成したいデータベース名とユーザ名とパスワードを記載します

  • vim ~/workspace/applications/laradock/.emv

- MYSQL_DATABASE=default
+ MYSQL_DATABASE=homestead
- MYSQL_USER=default
+ MYSQL_USER=homestead
- MYSQL_PASSWORD=default
+ MYSQL_PASSWORD=homestead

dockerコンテナを起動する

  • 以下コマンドでworkspace php-fpm nginx mysql phpmyadmin のコンテナが起動します
cd ~/workspace/applications/laradock/
docker-compose up -d nginx mysql phpmyadmin

注:workspaceとphp-fpmはほとんどの場合自動的に実行されるため、upコマンドで指定する必要はありません。
それらが実行されていない場合は、次のように指定する必要がありますdocker-compose up -d nginx php-fpm mysql workspace。

コンテナが正常に起動してるか確認する

  • docker-compose ps
Name                        Command              State                     Ports
-----------------------------------------------------------------------------------------------------------
laradock_applications_1   /true                           Exit 0
laradock_mysql_1          docker-entrypoint.sh mysqld     Up       0.0.0.0:3306->3306/tcp
laradock_nginx_1          nginx                           Up       0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1        docker-php-entrypoint php-fpm   Up       9000/tcp
laradock_phpmyadmin_1     /run.sh phpmyadmin              Up       0.0.0.0:8080->80/tcp
laradock_workspace_1      /sbin/my_init                   Up       0.0.0.0:2222->22/tcp

コンテナへログインする

  • workspaceのコンテナにログインする
docker-compose exec workspace bash
  • laravelをインストールする
composer create-project laravel/laravel laravel

laravelのenvをlaradockで作成したmysqlの構成に合わせる

  • vim laravel/.env
- DB_HOST=127.0.0.1
+ DB_HOST=mysql
- DB_PASSWORD=secret
+ DB_PASSWORD=homestead

laravelのmigrationを実行する

cd laravel
php artisan migrate

phpmyadminに接続する

  • phpmyadminにアクセスしログインしてみる

  • ログイン画面

  • 実際に作成したデータベースとmigrationによって生成されたテーブル

  • 作成したユーザがテーブルの権限を持っているか確認する

アプリケーションが動作していることを確認する

  • ブラウザでlaravel.devにアクセスして以下のように表示されていれば完了

参考元