概要
Dockerにて、Laravel開発用ツールが1イメージに詰まったlaraedit-dockerイメージをpullして、速攻でLaravelの開発環境を作る。docker-composerは使わず、最短手順で構築する。
目次
前提
ホストOSは以下の通り
CentOS | 6.9 |
docker | 1.7.1 |
構築するイメージ(Laravel開発環境)は以下の通り
php | 7.0.1 |
Laravel | 5.5.23 |
mySQL | 14.14 |
nginx | 1.10.1 |
node | 5.12.0 |
npm | 3.8.6 |
また、DockerがインストールされたCentOSを用意できていること
laraedit-dockerとは
laraedit-dockerはLaravelのHomeSteadと同じようなことをDockerで出来るようにしたDockerイメージ
HomeSteadとは
HomeSteadは、Laravelの開発環境(PHP/MySQL/Nginx/Node…)をオールインワンパッケージとしたVagrantのbox。DockerじゃなくてVagrantでLaravelの開発環境を構築した場合は普通にこちらを使う。
何故Dockerを使うのか
VagrantのHomeSteadはLaravel本家から出ているので安心感もあるし、関連情報も多い。
が、本記事では以下の理由からDockerを採用する
- 起動/停止が高速
- 複数の環境を容易に立ち上げ、使い捨てられる
- 容量をあまり食わない
Dockerイメージを取得
早速Dockerイメージを取得しよう。以下のコマンドだけでイメージは取得できる。
$ docker pull laraedit/laraedit
Dockerコンテナの作成
Laravel開発環境となるコンテナを立ち会が得る
$ docker run -p 8000:80 --name myapp -v /path/to/your/app:/var/www/html/app laraedit/laraedit
何となく80番は本番以外で使いたくないので8000番を80番にポートフォワーディング。
ホストの/path/to/your/appを/var/www/html/appに共有ディレクトリ設定することで、GUIで作業する際に捗る。vimmerの方は不要。
コンテナを識別しやすいようにmyappと名前をつける。
Laravelのインストール
まずは作成したコンテナにbashでアクセスする。
$ docker exec -it myapp bash root@b780875cb411:/$
デフォルトだと、/var/www/html/appがアプリケーションディレクトリになるので、本記事ではデフォルトのまま、ここを使用する。変更する場合はnginxの設定も弄る必要があるので注意。
root@b780875cb411:~$ cd /var/www/html/ root@b780875cb411:/var/www/html/$
composerも既にインストール済みなので、laravelのプロジェクトを作る。appディレクトリを上書きしてほしいのでプロジェクト名をappにする。何かオプション上手く使えばもっとスマートに出来る気がする。
$ root@b780875cb411:/var/www/html/$ composer create-project --prefer-dist laravel/laravel app Installing laravel/laravel (v5.5.22) - Installing laravel/laravel (v5.5.22) Downloading: 100% (以下略)
appディレクトリにLaravelの構成ファイルが配置される。
忘れがちだけどenvファイルを生成してAppキーもセットする。
root@b780875cb411:/var/www/html$ cd app root@b780875cb411:/var/www/html/app$ cp .env.example .env root@b780875cb411:/var/www/html/app$ php artisan key:generate Application key [base64:cPt6tNOTSaqakthBXTtra0sZTIXPFZ9DRoMdKIX0934=] set successfully.
動作確認
Dockerのホストがlocalhostの場合、localhost:8000にアクセスすると
やったぜ