明日から、身につける。
明日から、身につける。
2019.05.22

初心者がLaradockでLaravelを開発するための準備の仕方をまとめるよ

ハル

最近フロントエンジニアからバックエンドに変わったハルです。

これから、Laravelの勉強を始めようと思います。

Laradockという、すぐにLaravel開発環境が用意できる便利なものがあるらしいですが、よしやるぞと言ってやろうと思ったらうまくできませんでした……。

少しつまずくだけでやる気をなくします……心が折れます……。

結局、最初のLaravelでのお勉強用の環境は、MAMPを立ち上げて用意しました。最初の一歩はそれでもいいとは思いますが、Dockerを使ってカッコ良くやりたい……!

Laravelで一人でサンプルサービスを作るのを数回作ってみたのですが、その中で、Laradockを起動するための準備をゆっくり学んでいくことができました。その内容をまとめ、下記の手順通りやればLaravelの勉強を開始できるようにしたのが今回の記事です。

今回の記事のゴールは下記の通りです。

  • LaradockでLaravelが開発できるようにする
  • phpMyAdminも使いたい

前の僕みたいな、これからスタートダッシュを切りたい方に向けて書いていきます。それではいってみましょう!

プロジェクトのフォルダを作成

laradock_project_nameという名前でディレクトリを作成しそのディレクトリに移動します。laradock_project_nameは好きな名前に変更してください。

$ mkdir laradock_project_name
$ cd laradock_project_name

git の用意

$ git init

Laradockを用意

$ git submodule add https://github.com/Laradock/laradock.git

Laravelの格納場所を用意する

$ mkdir src
laradock_project_name
├── laradock
└── src

Laradockの設定ファイルを編集する

サンプルファイルを複製し.envを用意

$ cd laradock
$ cp env-example .env

設定ファイルの編集

APP_CODE_PATH_HOST

Laravelのアプリケーションのディレクトリを指定します。

今回は laradock_project_name/src/ にするため下記のように変更します。

APP_CODE_PATH_HOST=../src/

DATA_PATH_HOST

このプロジェクトのデータの管理場所を変更します。

初期状態の~/.laradock/dataだと、複数プロジェクトと同じデータを参照したりと扱いづらいので変更します。

DATA_PATH_HOST=../.laradock/data

COMPOSE_PROJECT_NAME

dockerのコンテナ名を変更します。

下記はそのプロジェクトだとわかるように変更すれば良いと思うので、例として下記のように変更します。

COMPOSE_PROJECT_NAME=laradock-project_name

MYSQL_VERSION

MySQLのバージョンを指定します。

初期状態だと最新版の開発版をダウンロードしてしまったりするので、安定板のバージョンを指定します。

MYSQL_VERSION=5.7

Docker 起動

laradockディレクトリ内でdocker-compose upをします。

nginx mysql phpmyadminをしっかり指定していること確認してから実行してください。

$ pwd
laradock_project_name/laradock
$ docker-compose up -d nginx mysql phpmyadmin

docker コンテナの起動確認

下記を実行し起動中のコンテナ名を確認します。

$ docker ps --format "table {{.Names}}"

NAMES
laradock-project_name_phpmyadmin_1
laradock-project_name_nginx_1
laradock-project_name_php-fpm_1
laradock-project_name_workspace_1
laradock-project_name_docker-in-docker_1
  • phpmyadmin
  • nginx
  • php-fpm
  • workspace
  • docker-in-docker

というのが起動中なのを確認しました。

Laravelをインストール

まず、 workspaceコンテナに接続をします。

$ docker-compose exec workspace bash

ログインをしたら、下記を実行しLaravelをインストールします。

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

インストールが終了したら、workspaceコンテナから抜けておきます。

# exit

Laravelの設定

workspaceコンテナから抜けたあとは、こちらのディレクトリを確認しましょう。

laradock_project_name/src/ディレクトリに、Laravelのファイルがインストールされているかと思います。

Laravelの設定ファイルを変更したいと思います。

$ cd ../src/
$ pwd
laradock_project_name/src/

$ vim .env
DB_HOST=mysql
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret

データベースのホスト名・データベース名・ユーザー名・パスワードを変更します。

laradock/.envに設定されたものです。今回は変更していなかったので、そこに記述された初期のものです。

これでLaravelのお勉強環境が作れました。

php artisanコマンドを行いたい場合だと、先ほども出てきたworkspaceコンテナに接続してから

$ docker-compose exec workspace bash

php artisanコマンドを実行します。

# php artisan --version
Laravel Framework 5.8.8

MySQL コマンドを実行したい

MySQLを実行したい場合は、MySQLコンテナに接続します。

$ docker-compose exec mysql bash

# mysql --version
mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

MySQLコマンドでログインする場合

# mysql -u default -p

パスワードが求められるので『secret』を入力すればアクセスできます。

phpMyAdminを使いたい

ここまでやっていれば docker-compose upでphpMyAdminを起動しています。

http://localhost:8080 にアクセスするとphpMyAdminが見れます。

  • サーバ: mysql
  • ユーザー名: default
  • パスワード: secret

.envで設定したものでログインできます。

作業を終了する時

docker-compose up -dで実行しているので

( ディレクトリの場所: laradock_project_name/laradock )

$ docker-compose stop

で最後停止してあげましょう。

再度起動するときは同じ

( ディレクトリの場所: laradock_project_name/laradock )

$ docker-compose up -d nginx mysql phpmyadmin

のコマンドを実行します。

まとめ

僕のような入門者でもできるだけつまずかないよう、手順を書いてみました。スタートダッシュに役立てられればと思います。

これからも、私もLaravelさんとお友達になれるようにいっぱい遊びたいと思います。