8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【Docker】Laradock で Laravel の開発環境を構築

Last updated at Posted at 2018-07-19

Docker で Laravel の開発環境を構築しようとしたときに、 Laradock というものを見つけて、とても便利だったので使い方の復習も兼ねて共有。

※ Docker はインストール済み想定

参考:PHPフレームワーク「Laradock」で、手軽にLaravel+Dockerな開発環境を構築する

構築する環境

  1. PHP
  2. MySQL
  3. apache

各バージョンは簡単に変更できるので後ほど。

作業ディレクトリの作成

$ mkdir my_project
$ cd my_project
$ mkdir src

my_project ディレクトリの中に Laradock をクローンする。
src ディレクトリに、コンテナにインストールする Laravel をマウントする。

Laradock をクローン

$ git clone https://github.com/laradock/laradock.git

設定ファイルを編集

env-example をコピーして .env を作成する。

$ cp env-example .env

.env ファイルを編集する。

.env
// 変更前
APP_CODE_PATH_HOST=../

// 変更後
APP_CODE_PATH_HOST=../src/

PHPのバージョンを変更する

.env の PHP_VERSION を編集する。
7系と 5.6 が選べるみたいですね。

.env
# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM). Accepted values: 7.2 - 7.1 - 7.0 - 5.6
PHP_VERSION=7.2

MySQL を変更する

.env を編集

.env
// 変更前
MYSQL_VERSION=latest

// 変更後
MYSQL_VERSION=5.7

※ ちなみに MySQL 8系から認証が変わったらしく、 Laradock の mysql ディレクトリの設定を変更しないと、 PHP からコネクトするときにエラーになります。

参考:stackoverflow

めんどくさい人は5.7で作業しておいてください。

私は変更前に docker-compose up 8系で作業してしまって、5.7に変更したのに反映されず困りました。
~/.laradock/data/mysql にデータが残っていたみたいです。
.env を 5.7 に編集してから以下の作業を行いましょう。

// 止める
$ docker-compose stop

// フォルダを削除
$ rm -r ~/.laradock/data/mysql

// 起動
$ docker-compose up -d mysql

Docker コンテナの起動

nginx を使いたい場合は apache2 を置き換えるだけでうまくいくはずです。

$ docker-compose up -d apache2 mysql

http://localhost にアクセスすると、404 か ディレクトリ一覧が表示されます。
nginx やったら 404 かな?

Workspace コンテナを起動して接続

起動します。

$ docker-compose up -d workspace

接続します。

$ docker-compose exec workspace bash

接続して Laravel とかインストールしてみましょう!

Laravel のインストール

composer はすでにインストールされています。
パスも通っています。

$ composer create-project --prefer-dist laravel/laravel ./

インストール終わったら、 http://localhost/public にアクセスしてみましょう。
Laravel の初期画面が表示されていますね?

コンテナから exit して、最初に作成した src ディレクトリに Laravel プロジェクトがマウントされているはずです。

MySQL の設定

.env ファイルを編集

.env
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

変えたい場合は Laradock ディレクトリの .env ファイルの mysql の設定が書かれた項目をいじってください。

PhpMyAdmin を使う

$ docker-compose up -d phpmyadmin

以上です。
http://localhost:8080 へアクセス!!!

DBを確認する

以下のコマンドでさくっと作ってもらいましょう。

$ php artisan migrate

MySQL を確認するとテーブルが作成されているはずです。

最後に

今回は触れてませんが、 redis を使う場合なども docker-compose up で redis を追加して、 Laravel の .env に設定を書いてあげるだけです。

便利ですね!!!

8
5
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
8
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?