Laravel6 Laradockを使ってDocker環境構築を初めからやってみる
はじめに
Laravelを学習して1ヶ月程度の初学者です。
自分自身もそうでしたが、学習開始時の最初のハードルが環境構築だと思います。
本記事では、これからLaravelを学習される方向けにlaradockを使ったDocker環境構築を解説します。
対象読者の方
ゼロからLaravelを勉強したい
やるからには最新版(Laravel6.0~)がいい
この機会にDocker環境構築にも挑戦してみたい
前提
macでDockerが既にインストールされている。
Dockerインストールはこちらの記事が分かりやすいです。
DockerをMacにインストールする
Laradockとは?
LaravelでのDocker環境構築パッケージです。
mysql・nginx・php-fpm等、開発に必要なファイルが一式用意されているので
手軽にDocker開発環境の構築ができます。
目指すゴール
LaradockによるDocker環境でLaravelのTopページを表示させる
実装の流れ
1 開発用のディレクトリを作成
2 git cloneでディレクトリにlaradockを導入
3 laradockの.envファイルを作成
4 workspaceコンテナを起動し、ログインする
5 Laravelプロジェクトを作成する
6 laradockの.envファイルを編集する
7 Laravelプロジェクトの.envファイルを編集する
8 laradockでコンテナ立ち上げ→ブラウザで表示確認
1 開発用のディレクトリを作成
# ターミナル画面
$ mkdir laravel-project
#ディレクトリが作成されていることを確認
$ ls
laravel-project
# 開発用ディレクトリに移動
$ cd laravel-project
2 git cloneでディレクトリにlaradockを導入
[laravel-project] $ git clone https://github.com/LaraDock/laradock.git
# laradockが導入されていることを確認
[laravel-project]$ ls
laradock
#laradockディレクトリに移動
[laravel-project]$ cd laradock
[laradock] $
3 laradockの.envファイルを作成
laradockディレクトリで以下コマンドを実行します。
[laradock] cp env-example .env
[解説]
・.envファイルは「laradock」ディレクトリ内の「env-example」ファイルをコピーして作成します。
4 workspaceコンテナを起動し、ログインする
1) workspaceコンテナを起動
laradockディレクトリで以下コマンドを実行します。
(初めて環境構築するときは少し時間がかかります)
...doneという表示が出れば無事 workspaceコンテナの起動完了です。
[laradock] docker-compose up -d workspace
Starting laradock_docker-in-docker_1 ... done
Starting laradock_workspace_1 ... done
2) workspaceコンテナにログイン
以下コマンドを実行し、 workspaceコンテナにログインします。
[laradock]
docker-compose exec --user=laradock workspace bash
# 以下のように表示されれば、workspaceにログインできています。
/var/www $
[解説]
・ workspaceコンテナについて
macで言う所のターミナルです。
プロジェクト作成、controller/model作成、migration等の
Laravel関連のコマンドは基本的にworkspaceコンテナで実行します。
5 Laravelプロジェクトを作成する
1)プロジェクト作成のコマンドを実行
workspaceコンテナ内で以下コマンドを実行し、Laravelプロジェクトを作成します。
アプリの名前は「myapp」としています。
(少し時間がかかります)
/var/www $ composer create-project --prefer-dist "laravel/laravel=6.0.*" myapp
2) 一旦、workspaceコンテナからログアウト
#以下のような表示が出れば、プロジェクト作成完了
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
> @php artisan key:generate --ansi
Application key set successfully.
# 以下コマンドで一旦、ログアウトします。
/var/www $ exit
3) workspaceコンテナも一旦、停止しておく
laradockディレクトリで以下コマンドを実行します。
[laradock] $ docker-compose stop
Stopping laradock_workspace_1 ... done
Stopping laradock_docker-in-docker_1 ... done
4) Laravelプロジェクトが作成されていることを確認する
念の為、サンプルプロジェクトが作成されているか確認しておきます。
[laradock] cd ../
[laravel-project] ls
laradock myapp
6 laradockの.envファイルを編集する
現段階でプロジェクト作成は完了しましたが、LaravelのTopページを表示するためには、
あともう少し設定変更の作業が残っています。
まずはlaradockの.envファイル編集です。
laradockディレクトリで以下コマンドを実行します。
[laravel-project] cd laradock
[laradock] vi .env
vimエディタを使って以下3つの設定を変更します。
(1)APP_CODE_PATH_HOST (2) DATA_PATH_HOST (3) MYSQL_VERSION
#変更前
APP_CODE_PATH_HOST=../
#以下に変更する
APP_CODE_PATH_HOST=../myapp
......
#変更前
DATA_PATH_HOST=~/.laradock/data
#以下に変更する
DATA_PATH_HOST= .laradock/data
・・・・・・
・・・・・・ (下にスクロール)
### MYSQL #################################################
#変更前
MYSQL_VERSION=latest
#以下に変更する
MYSQL_VERSION=5.7
#上記変更したらescを押す→ :wq(保存して終了)でvimエディタを終了します。
:wq
[補足]
Mysqlですが最新版は不具合情報もあるので、本記事ではVersion5.7にしています。
7 Laravelプロジェクト(myapp)の.envファイルを編集する
今度はLaravelプロジェクト側の.envファイルを編集します。
mysqlの設定をlaradockに合わせます。
*.envファイルはlaradockとLaravelプロジェクトの2つあり混同しやすいので
注意が必要です。
# myappディレクトリに移動
[laradock] cd ../
[laravel-project] cd myapp
# .envファイルを開く
[myapp] vi .env
# mysqlの設定を変更
[ 変更前 ]
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=
#以下に変更する
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=default
DB_USERNAME=default
DB_PASSWORD=secret
# Esc→ 保存してvimエディタを終了
:wq
8 laradockでコンテナ立ち上げ→ブラウザで表示確認
必要な設定変更が一通り完了しました。
laradockディレクトリでコンテナを立ち上げTopページが表示できるか確認します。
#laradockディレクトリに移動
[myapp] $ cd ../
[laravel-project] $ cd laradock
# コンテナ立ち上げ
$ docker-compose up -d nginx mysql
Starting laradock_docker-in-docker_1 ... done
Starting laradock_mysql_1 ... done
Starting laradock_workspace_1 ... done
Starting laradock_php-fpm_1 ... done
Starting laradock_nginx_1 ... done
ここまで出来たらブラウザで表示を確認します。
ブラウザから http://localhost/ にアクセスしてください。
以下のようにTopページが表示されれば、LaradockによるDocker環境構築完了です。
補足
コンテナを停止するときには以下コマンドを実行してください。
[laradock] $ docker-compose stop
Stopping laradock_nginx_1 ... done
Stopping laradock_php-fpm_1 ... done
Stopping laradock_workspace_1 ... done
Stopping laradock_docker-in-docker_1 ... done
Stopping laradock_mysql_1 ... done
起動中のコンテナを確認したいときは以下コマンドを実行してください。
#コンテナ起動中の場合 (表示例)
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b5cddea64a82 laradock_nginx "/bin/bash /opt/star…" 16 minutes ago Up 2 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp laradock_nginx_1
b3bd47a6c08c laradock_php-fpm "docker-php-entrypoi…" 16 minutes ago Up 3 seconds 9000/tcp laradock_php-fpm_1
203846af807f laradock_workspace "/sbin/my_init" 16 minutes ago Up 4 seconds 0.0.0.0:2222->22/tcp laradock_workspace_1
1fc915c04e06 docker:dind "dockerd-entrypoint.…" 16 minutes ago Up 5 seconds 2375-2376/tcp laradock_docker-in-docker_1
7858263ce0c5 laradock_mysql "docker-entrypoint.s…" 16 minutes ago Up 5 seconds 0.0.0.0:3306->3306/tcp, 33060/tcp laradock_mysql_1
# コンテナが起動していない場合
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Author And Source
この問題について(Laravel6 Laradockを使ってDocker環境構築を初めからやってみる), 我々は、より多くの情報をここで見つけました https://qiita.com/majorboy/items/97fa9e0fc7a86a890293著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .