Laravel環境をLaradockとDockerで構築する
なんです。
前回、php7の環境を構築したのですが予想以上に面倒だったので、今回はDockerを用いてLaravel環境を構築したいと思います。DockerイメージにはLaradockを用いたのですが、かなり手軽に構築することができるし、デフォルトで色々入っているので後々遊ぶのにも困らない気がします。自分はmacユーザなのでDocker for Macを使用します
Laradockとは
Laravel環境をDockerで簡単に構築するためのDockerイメージ
nginxやmysqlなど開発に必要なものを概ね揃えることができます
構築手順は公式も読んだのですが、うまくいかない部分もあったので先駆者の記事を梯子しました
Laradockをクローンし、.envファイルを作成
Laradockはクローンして使用します
GitHub - laradock/laradock: Docker PHP development environment.
git clone https://github.com/laradock/laradock.git
クローンが完了したらディレクトリを移動し、.envファイルを作成します
すでにenv-exampleというファイルが存在するので今回はコピーして使用します
cd laradock
cp env-example .env
公式ではこの.envファイルに
DB_HOST=mysql REDIS_HOST=redis QUEUE_HOST=beanstalkd
上記を追記し、mysqlなどの利用設定を行っています。
今回はとりあえずLaravelを起動するだけなので設定は必須ではありません。
必要なコンテナを起動
コンテナを起動していきます
Laravelの動作確認だけなら
docker-compose up -d nginx
これだけで問題ないです
全部起動する場合は
docker-compose up -d nginx mysql redis beanstalkd
これで起動します
初回はめっちゃ時間かかります
docker psで起動を確認すると
NAMES
laradock_mysql_1
laradock_redis_1
laradock_beanstalkd_1
laradock_nginx_1
laradock_php-fpm_1
laradock_workspace_1
laradock_docker-in-docker_1
こんな感じで色々起動しています
workspaceというのがlinuxのコンテナでここで作業を行います
Laravelのテストプロジェクトを作成
workspaceコンテナに入ってLaravelプロジェクトを作成します
docker exec -it laradock_workspace_1 /bin/bash
laradock_workspace_1の部分は適宜変更してください
workspaceにはcomposerなどがすでに用意されているので
composer create-project laravel/laravel checkapp
checkappの部分には自分が作成したいプロジェクト名が入ります
Do not run Composer as root/super user! See https://getcomposer.org/root for details
こんな感じでroot権限でcomposerを動かすなとwarningが出ますが無視します
docker-compose.ymlのボリュームを変更
このままでは作成したLaravelプロジェクトにDockerがマウントされていないので、修正します
そのため、一度Dockerを停止します
docker-compose stop
停止が完了したらdocker-compose.ymlを修正します
volumes: - ${APP_CODE_PATH_HOST}/checkapp:${APP_CODE_PATH_CONTAINER}
上記のように${APP_CODE_PATH_HOST}の後に作成したLaravelプロジェクト名を続けます
${APP_CODE_PATH_HOST}は複数箇所に記述されているので全て修正します
修正完了後、再びDockerを起動します
docker-compose up -d nginx
localhostにアクセスし、Laravelのスタートページが表示されれば成功です http://localhost/