のぐそんブログ

暗いおじさんがシコシコ書くブログです。

Laradockで簡単に開発環境を準備するメモ

Laravelの開発環境を準備するのに便利だというLaradockを利用してみたいと思います。

Laradockをcloneする。

git clone https://github.com/LaraDock/laradock.git my_project

my_projectが作成される。

.
└── my_project

laradockに移動。

cd my_project

環境設定ファイルを作成

環境設定のサンプルファイルから環境設定ファイルを作成する。

cp env-example .env

Dockerコンテナを起動する

NginxとMySQLコンテナを起動。

$ docker-compose up -d nginx mysql

Laravelのプロジェクトを作成

Laradockにログインする。

 docker exec -it laradock_workspace_1 /bin/bash
 root@7651bdd4c89c:/var/www#

composerを利用してLaravelをダウンロード

root@7651bdd4c89c:/var/www# composer create-project laravel/laravel src

ホストのディレクトリをコンテナにマウントする

ホストのディレクトリで作業できるようにする。

何も設定しないと、カレントフォルダがマウントされるようになります。

root@7651bdd4c89c:/var/www# ls
my_project  src

コンテナから出る。

root@7651bdd4c89c:/var/www# exit

dockerのコンテナを停止。

docker-compose stop

.envファイルを開き、下記を変更する。

APP_CODE_PATH_HOST=../

今回はsrcディレクトリをマウントするように変更。

APP_CODE_PATH_HOST=../src

DATA_PATH_HOSTはDBデータの中身が格納されます、ローカルPCのディレクトリです。 デフォルトでの~/.laradock/dataの場合複数のプロジェクトで同じ場所を指定してしまう為、変更しておきます。

DATA_PATH_HOST=~/.my_project/data

コンテナを起動

コンテナをもう一度起動する。

$ docker-compose up -d nginx mysql

http:localhostでアクセスすると、↓の画面が表示される。

srcフォルダがマウントされるようになります。

root@f994d5c91354:/var/www# ls
app      bootstrap      composer.lock  database      phpunit.xml  readme.md  routes      storage  vendor
artisan  composer.json  config         package.json  public       resources  server.php  tests    webpack.mix.js

その他

srcディレクトリに移動することで、artisanコマンドも利用できるようになります。

もし以下のエラーが出る場合は、phpのバージョンが7になっていないかもしれません。

Parse error: parse error in /Users/{ユーザー名}/Desktop/Laravel_test/sample/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php on line 500

phpのバージョンを確認して

brew search php@7
php@7.0                    php@7.1                    php@7.2

インストールしてください。

brew install php@7.2

一旦ターミナルを閉じないと何故か、php -vをしてもバージョンが更新されませんでした。