Skip to content

Docker images to run Laravel 5.x (nginx + php7.2(laravel) + mysql5.7)

Notifications You must be signed in to change notification settings

yukure/laravel5_docker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

yukure/laravel-docker

このリポジトリには、Laravel5.xを動かすための

  • php7.2
  • nginx
  • mysql5.7 の docker イメージが含まれています。

備考

※ Macでの仕様を前提としています。 Windowsではパスの指定が違ってくるため、クローンしてきた状態だとうまくコンテナの作成を行ってくれません。

事前準備

  • Docker Desktop をインストール済み。
  • git コマンドが叩ける。

セットアップ手順

Laravelをインストールするまでのセットアップ手順を順番に説明します。

環境の構築

まず、ディレクトリを作成して、そのディレクトリに移動します。 ※ディレクトリ名は好きな名前でOKです。

$ mkdir laravel-docker
$ cd laravel-docker

そして、作成したディレクトリ内でlaravel-dockerをgithubからクローンします。

$ git clone [email protected]:yukure/laravel-docker.git

コンテナの起動

docker-compose コマンドを使用してコンテナの作成と起動を行います。

$ docker-compose up -d

phpコンテナに入る

execコマンドを使用して、コンテナ内に入ります。

docker-compose exec php bash

Laravelをインストールする

$ laravel new

これで、Laravelを起動するための環境と、Laravelのインストールが完了しました。

ブラウザでの確認

ブラウザで、localhostにアクセスして↓のページが表示されたらOKです! Laravel Top Page

Laravel のセットアップ

ページを表示することはできましたが、まだセットアップは終わってません。 とりあえず、タイムゾーンと言語の設定しておきましょう。 これをしておかないと、ログに出力される日時や、DB Recordのcreated_at/updated_atなどが9時間前ずれてしまったり、バリデーションメッセージが英語になってしまいます。

タイムゾーンと言語の設定

// config/app.php
    
- 'timezone' => 'UTC',
+ 'timezone' => 'Asia/Tokyo',

...

- 'locale' => 'en',
+ 'locale' => 'ja',

これでOKです。

mysql の設定

まず、mysqlのコンテナに入ります。

# コンテナに入る
docker-compose exec db bash

# mysqlにrootユーザでログインする
$ mysql -u root -p

# パスワード聞かれるので root と入力
Enter password:

# ログイン完了!!
mysql>

ログインできたら、DBの作成をします。

# laravel という名前のDB作成
mysql> create database laravel;

# 新しいユーザー作成
mysql> CREATE USER 'laravel'@'%' IDENTIFIED WITH mysql_native_password BY 'laravel';

# 作ったユーザに権限付与
GRANT ALL PRIVILEGES ON laravel.* TO 'laravel'@'%'; FLUSH PRIVILEGES;

# 一旦、ログアウト
mysql> exit

# 先程作ったユーザでログイン (passwordはlaravel)
$ mysql -u laravel -p

# データベース一覧表示
mysql> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| laravel            |
+--------------------+

# mysqlからログアウト
mysql> exit

# コンテナから抜ける
$ exit

これでmysqlにDB作って、それにアクセスできるユーザの作成をしました。

.envの編集

次は、.envの編集をします。 .envとは、環境変数が格納されているファイルです。

laravelの各種設定の値が一覧になっているファイルです。 このファイルの値を変更すると、laravelのアプリケーション自体に変更がおきるので、取扱は慎重に!

# 接続先のDBと接続する際のユーザの変更
-DB_HOST=127.0.0.1
+DB_HOST=db
DB_PORT=3306
- DB_DATABASE=homestead
+ DB_DATABASE=laravel
- DB_USERNAME=homestead
+ DB_USERNAME=laravel
- DB_PASSWORD=secret
+ DB_PASSWORD=laravel

認証機能(ログイン機能)の実装

webサービスなどでよくある、ログイン機能をlaravelではコマンド1発で(正確には2発)実装できます。

# php のコンテナに入る
$ docker-compose exec php bash

# 認証機能実装(マイグレーションファイル作成やルートの定義などの設定)
php artisan make:auth

# マイグレーション実行
php artisan migrate

About

Docker images to run Laravel 5.x (nginx + php7.2(laravel) + mysql5.7)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published