はじめに
みなさんこんばんわ。月火水木金土日が出勤日の男nishiharaです。
今回の記事を書く経緯としては、以前から仲良くさせていただいているよっちゃん(@yoshixj)からの依頼だったので、微力ながら参加させていただこうと思い、ここに寄稿させていただきました。
さて、タイトルにもあるように今回は近年日本でも大分本などが出版されて注目度が上がってきたLaravel、そしてみんな大好きDockerという構成で今すぐ簡単なアプリケーションを開発できるようなベースファイルを作成しましたので、それを紹介したいと思います。
今回のプロジェクトにおけるディレクトリ構成は以下のようになっています(参考までに)
Project/
┣ laravel/
┣ mysql/
┣ etc/
└docker-compose.yml
└.env
└.Dockerfile
mysqlフォルダはdocker-compose upで作成したDBを永続化するために作成しています。(mysql/volumesを/var/lib/myqlにマッピング)
etc/ フォルダの中ではnginxの設定とBasic認証用のファイルを格納しています。
docker
今回のプロジェクトにおけるdocker-compose内で定義するミドルウェアの構成としては、nginx、php-fpm,mysqlを選定しました。
では早速docker-compose.ymlファイルを紹介
version: "2"
services:
nginx:
image: nginx:alpine
volumes:
- ./etc/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
- ./etc/nginx/.htpasswd:/etc/nginx/.htpasswd
- ./laravel/public:/var/www/laravel/public
ports:
- 80:80
links:
- phpfpm
depends_on:
- phpfpm
phpfpm:
build:
context: .
dockerfile: ./Dockerfile
volumes:
- ./laravel:/var/www/laravel
links:
- mysql
depends_on:
- mysql
env_file: .env
mysql:
image: mysql:5.7
env_file: .env
volumes:
- ./mysql/volumes:/var/lib/mysql
ports:
- 4306:3306
php fpm 用のDocker ファイルは以下のようになっています
FROM php:7.2-fpm-alpine
RUN docker-php-ext-install pdo_mysql
.envファイルは以下のようになっています(xxxxxの部分は適宜自分で変更してください)
DB_HOST=mysql
DB_DATABASE=xxxxxxxx
DB_USERNAME=xxxxxxxx
DB_PASSWORD=xxxxxxxx
MYSQL_ROOT_PASSWORD=xxxxxxxx
MYSQL_DATABASE=xxxxxxx
これで環境の下準備は終了です
Laravelを用意
次にLaravelプロジェクトを作成します
いくつかプロジェクトの作成方法はありますが、私はこれでやることが多いです。
composer create-project --prefer-dist laravel/laravel プロジェクト名 "5.5.*"
しばらく待っているとプロジェクトが作成されます。(ほんと一瞬だからすごい)
Laravelフォルダーに移動して
cp .env.example .env
みたいな感じで.envファイルを作成しましょう。中身は適宜必要な形で書いてください。
composer install
のコマンドを打つと必要なライブラリがインストールされます。ここまできたらプロジェクトフォルダに戻りdocker-compose upと打つとlaravelと書かれた。プロジェクトが立ち上がると思います。
以上!ほんと簡単!
おわりに
ご意見コメント等ございましたらぜひぜひご記載ください。
よろしければ ツイッターもやっているので
https://twitter.com/nobu_ne
をフォローお願いします。(技術的な話をつぶやくことは少ない笑)