LoginSignup
1
1

More than 1 year has passed since last update.

Docker ComposeでLaravel開発環境を構築その壱

Last updated at Posted at 2020-07-18

Docker環境を作ってみよう!・・・と思い立ったので、作ってみました。
Docker+Amazon LinuxでLaravel開発環境を構築

でも、OSイメージにインストールしまくるのは、Dockerの本来の使い方じゃないんだろうな。
ということで、Docker Composeでの環境構築を、コピペできるように纏めました。

マシンスペック

  • Mac mini 2018
  • macOS Catalina(10.15.x)
  • Intel Core-i7 3.2GHz 6コア
  • メモリ 32GB
  • SSD 512GB

Docker環境

  • Nginx 最新版
  • PHP(PHP-FPM)7.2.x
  • MySQL 5.7.x
  • Composer 最新版
  • Laravel 5.6

やること

  • Docker Composeで環境構築

補足

各環境を行ったり来たりするので、下記のように記載します。

[Mac]$ MacのターミナルでMac内の作業
[PHP]$ MacのターミナルからPHPコンテナに接続して作業

前提

Dockerはインストール済み

コンテナ作成

コンテナ定義を作りました!
https://github.com/bobtabo/docker

[Mac]$ cd <任意のディレクトリ>
[Mac]$ git clone https://github.com/bobtabo/docker.git
[Mac]$ cd docker
[Mac]$ docker-compose up -d
・・・
Creating mysql ... done
Creating php   ... done
Creating nginx ... done
作成されるホストOS(Mac)のマウントポイント
~/Work/MountPoint/docker/home -> /home/docker
~/Work/MountPoint/docker/db/data -> /var/lib/mysql

※参考
Concrete5 on Nginx + php7-fpm を docker-compose でやってみた
docker-compose を使って(なるべく)公式イメージで PHP 開発環境を作った
PHPの公式DockerイメージでUNIXソケット通信しようとして罠にハマるの巻
docker-composeでunixソケットを使った、Nginx、php-fpmコンテナを作る

Laravelのインストール

LaravelインストールをDockerfileに書くと、コンテナ起動時に毎回インストールが走るらしい。
どの記事を読んでもLaravelは別作業なのは、そういう事だったのか。
何か効率が良い方法はないものか、、、また今度考えよう。
ということで、コンテナの中に入って、Laravel環境を作成します。

[Mac]$ docker-compose exec --user 1000 php bash
[PHP]$ pwd
/home/docker

[PHP]$ composer create-project --prefer-dist laravel/laravel laravel "5.6.*"
[PHP]$ cd laravel
[PHP]$ composer require --dev barryvdh/laravel-ide-helper
[PHP]$ composer require --dev squizlabs/php_codesniffer
[PHP]$ chmod -R 777 storage
[PHP]$ chmod -R 777 bootstrap/cache

[PHP]$ vi .env
★DB設定を置換
:%s/DB_HOST=127.0.0.1/DB_HOST=mysql/g
:%s/DB_DATABASE=homestead/DB_DATABASE=hoge/g
:%s/DB_USERNAME=homestead/DB_USERNAME=fuga/g
:%s/DB_PASSWORD=secret/DB_PASSWORD=docker#DOCKER1234/g
:wq

[PHP]$ php artisan migrate
[PHP]$ php artisan db:seed

[PHP]$ mkdir bin
[PHP]$ vi bin/clear-laravel.sh
★下記を点線内をコピペ
---
#!/bin/bash
php artisan view:clear
php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan clear-compiled
php artisan config:cache
composer dump-autoload
php artisan ide-helper:generate
php artisan ide-helper:models -N
php artisan ide-helper:meta
find . -name '._.DS_Store' -type f -ls -delete
---
:wq
[PHP]$ chmod 755 bin/clear-laravel.sh
[PHP]$ bin/clear-laravel.sh

動作確認(Macのhosts編集)

[Mac]$ sudo vi /private/etc/hosts
★下記を点線内を追記
---
127.0.0.1 laravel.local
---
:wq

ブラウザで動作確認

無題.png

コンテナ削除

[Mac]$ docker-compose down --rmi all --volumes

※参考
《滅びの呪文》Docker Composeで作ったコンテナ、イメージ、ボリューム、ネットワークを一括完全消去する便利コマンド

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1