こんにちは!プログラミングコーチのゆーやです。
今日は既存のDockerfileやVagrantfileを流用して簡単にLaravelの環境を作っていく手法について解説していきたいと思います。
Vagrantを用いて構築する仮想マシンや、Dockerを用いて構築する仮想コンテナは一度学習した前提で進めていくので、詳しい説明はしません。ご了承ください。
コーディングの詳細について知りたい方は『PHPHacks』で丁寧に解説しているので、そちらをご視聴くださいませ!!
各種ツールのインストール
Vagrant
VirtualBox
Git bash(Windowsの方向け)
Vagrantを用いてDocker動作環境を構築する
ソースコード
Vagrantを用いてdockerとdocker-compose、gitの使える仮想マシンを構築するコード群です。
*探求学園メンバー以外の使用を禁止します。
https://github.com/yuya-ishikawa-qa/docker-on-vagrant
初期準備(~/phpHacks/)
$ git clone https://github.com/yuya-ishikawa-qa/docker-on-vagrant.git
$ cd docker-on-vagrant
$ mkdir Docks
起動コマンド
$ vagrant up
$ vagrant ssh
[local-docker] docker -v
[local-docker] docker-compose -v
[local-docker] git --version
その他コマンド
VirtualBoxのバージョンが古く”vboxsf”のエラーが出たとき。
$ vagrant plugin install vagrant-vbguest
vagrant sshをしてもDocksがなく、データのマウントが正常にできていないとき。
$ vagrant reload
$ vagrant halt
Dockerを用いてLAMP(+Laravel)環境を構築する
ソースコード
Dockerを用いてLAMP環境と、Laravelアプリを起動することのできる仮想コンテナを構築するコード群です。
*探求学園メンバー以外の使用を禁止します。
https://github.com/yuya-ishikawa-qa/docker-laravel
初期準備(/home/vagrant/)
[local-docker] cd docks
[local-docker] git clone https://github.com/yuya-ishikawa-qa/docker-laravel.git
[local-docker] cd docker-laravel
[local-docker] mkdir lara-d
[local-docker] docker-compose build
[local-docker] docker-compose up -d
[local-docker] docker-compose stop
[local-docker] docker-compose down
その他コマンド
[local-docker] sudo groupadd docker
[local-docker] sudo gpasswd -a $USER docker
[local-docker] sudo systemctl restart docker
[local-docker] exit
$ vagrant ssh
Laravelアプリケーションの起動
Laravelアプリの初期生成
[local-docker] docker-compose exec web bash
[#html] composer create-project --prefer-dist laravel/laravel lara-d "5.8.*"
[#html] exit
編集箇所
①lara-dのデータマウント(docker-compose.yml)
②publicへのDocumentRoot(apache-php/apache.conf)
https://github.com/yuya-ishikawa-qa/docker-laravel/commit/3b4faa1007cd6b3e21a8c878119a8f1b5764e85d
再ビルド
[local-docker] docker-compose build
[local-docker] docker-compose up -d
ブラウザで確認
http://192.168.33.11 にアクセスして以下の画面が確認できれば完成
(http://192.168.33.11:8080 ではphpMyAdminに繋がります)
ipアドレスはVagrantfile、ポート番号はdocker-compose.ymlで設定
Laravelの環境設定
サンプルコード(Laravel掲示板)
Laravel掲示板のサンプルコードはこちら。まずLaravelアプリの完成版を触ってみたい方はお試しください。
*探求学園メンバー以外の使用を禁止します。
https://github.com/yuya-ishikawa-qa/laravel-bulletin-board
.envの設定例
⓪APP_URLはVagrantfileで設定したIPアドレス
①DB_HOST ②DB_PASSWORD ③DB_PASSWORD は docker-compose.ymlで設定した環境変数
を設定している。
APP_NAME=Laravel
APP_ENV=local
APP_KEY= [自身の環境に応じたものを設定]
APP_DEBUG=true
APP_LOG_LEVEL=debug
APP_URL=http://192.168.33.11
DB_CONNECTION=mysql
DB_HOST=mysql5.7
DB_PORT=3306
DB_DATABASE= [phpMyAdminで生成したDB名に設定]
DB_USERNAME=root
DB_PASSWORD=root