はじめに
今更感満載ですが、 流行りの Laravel
を Laradock
を用いて立ててみました。
Qiitaだけでも漁るといっぱい記事が出てくる内容にはなりますが、ご了承くださいm(_ _)m
Laradockとは?
こちら になります。
dockerでLaravelを動かすために開発されたプロジェクトです。
様々なPHPのバージョン、DB、ミドルウェアをチョイスすることが出来るようです。
前提
下記モジュールがインストールされていること。
それぞれ参考記事を確認いただければ、サクッとインストール可能です。
- Docker
参考記事: DockerをMacにインストールする - git
参考記事: 購入直後のMacでGitコマンドを使えるようになるまで
Laradockのインストール
プロジェクト用ディレクトリ作成
まずは下記コマンドで、プロジェクト用のディレクトリを作成します。
% mkdir ~/workspace/laravel_sample
% cd ~/workspace/laravel_sample
githubからのclone
下記コマンドで、githubから Laradock
をダウンロードします。
% git clone https://github.com/Laradock/laradock.git
Cloning into 'laradock'...
remote: Enumerating objects: 10007, done.
remote: Total 10007 (delta 0), reused 0 (delta 0), pack-reused 10007
Receiving objects: 100% (10007/10007), 8.99 MiB | 3.30 MiB/s, done.
Resolving deltas: 100% (5432/5432), done.
.envファイルの修正
クローンした Laradock
ディレクトリ内にある、 env-example
をコピーして 設定定義用の .env
を作成します。
% cd laradock
% cp env-example .env
% ls -l .env
-rw-r--r-- 1 member group 27511 1 20 17:35 .env
その後、 .env
ファイルに、下記を追加します。
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
dockerコンテナの実行
これでコンテナを起動する設定が完了したため、任意のコンテナを実行します。
今回の例では nginx
mysql
redis
を実行しています。
サポートされているミドルウェアについては、 公式ページ をご確認ください。
docker-compose up -d nginx mysql redis workspace
dockerコンテナの起動確認
下記コマンドでコンテナが起動していることを確認します。
% docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
359efff2066b laradock_nginx "/bin/bash /opt/star…" 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp laradock_nginx_1
e920c68c0061 laradock_php-fpm "docker-php-entrypoi…" 2 minutes ago Up 2 minutes 9000/tcp laradock_php-fpm_1
192ebe58ccea laradock_workspace "/sbin/my_init" 2 minutes ago Up 2 minutes 0.0.0.0:2222->22/tcp laradock_workspace_1
84fbc83b3730 docker:dind "dockerd-entrypoint.…" 2 minutes ago Up 2 minutes 2375-2376/tcp laradock_docker-in-docker_1
28c432f44127 laradock_mysql "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp laradock_mysql_1
1722ae0554b7 laradock_redis "docker-entrypoint.s…" 2 minutes ago Up 2 minutes 0.0.0.0:6379->6379/tcp laradock_redis_1
このまま http://localhost
にアクセスすると、nginxの404ページが表示されると思います。
Laravelプロジェクトの作成
まずは下記コマンドを実行し、 laradock_workspace
のイメージから作られたコンテナの中に入ります。
docker exec -it laradock_workspace_1 bash
root@192ebe58ccea:/var/www#
プロジェクト作成
下記コマンドで Laravel
プロジェクトを実際に作成します。
composer create-project laravel/laravel laravel_sample
権限変更
webサーバーから書き込みを許可するために、権限を変更する必要があるため、
下記コマンドを storage
bootstrap/cache
に対して実行します。
cd laravel_sample
chmod 766 storage
chmod 766 bootstrap/cache
nginxのドキュメントルートの設定
このままだと nginx
が別のディレクトリを参照しているため、
laradockディレクトリ内の default.conf
を修正して、ドキュメントルートを設定します。
vim /var/www/laradock/nginx/sites/default.conf
13行目あたりにある、 root
の部分を、
laravel
プロジェクトの public
ディレクトリに修正します。
12 server_name localhost;
13 root /var/www/laravel_sample/public; # この部分を修正。laravel_sampleはプロジェクト名。
14 index index.php index.html index.htm;
ここまで全て完了したら、dockerコンテナから出ます。
root@192ebe58ccea:/var/www# exit
exit
設定の反映
設定を反映するために、下記コマンドを実行し、コンテナの再起動を行います。
(コンテナIDは laradock_nginx
のものを指定します。)
docker restart 359efff2066b
起動確認
ブラウザから http://localhost
にアクセスし、下記画面が表示されることを確認します。
これでLaravelが立ち上がりました!簡単!
まとめ
Laradock
を使用すると、 Laravel
の開発環境、
また必要な各種モジュールを簡単にインストールすることができます。
今回の記事では触れませんでしたが、
ホストの Laravel
プロジェクトと Docker
内の Laravel
プロジェクトをマウントすることで、
ホスト側を修正すると Laravel
プロジェクトに即時反映する環境を作ることができます。
下記ページが参考になるかと。。
【Docker】Dockerでホストのディレクトリをマウントする
Docker
便利なので、どんどん使って慣れていきたいですね!
読んで頂きありがとうございました!
共に働くWebエンジニアを募集しています!
不動産SHOPナカジツでは自社サービスを作っていく仲間を募集しています。
詳しくはWantedlyからお問い合わせください。
お待ちしております!