LoginSignup
1
2

More than 3 years have passed since last update.

Laradockによるlaravel開発環境構築

Last updated at Posted at 2019-05-02

はじめに

今更ですがLaravelをLaradockを使い環境構築してみます。
(この投稿は自分用メモでもあります。)

前提

docker-composeコマンドが使える

> docker-compose --version
docker-compose version 1.23.2, build 1110ad01

gitコマンドが使える

> git --version
git version 2.21.0.windows.1

ちなみにPCはWindows10 proを使用しています。

1.作業ディレクトリの作成&Laradockのクローン

# 作業ディレクトリを作成
> mkdir dockerworkspace

# 作業ディレクトリに移動
> cd dockerworkspace

# GitからLaradockをダウンロード
> git clone https://github.com/LaraDock/laradock.git

2.「.env」ファイルの作成

# laradockディレクトリに移動
> cd laradock

# env-exampleをコピーし.envファイル作成
> cp env-example .env

3.コンテナの起動

# laradockディレクトリ上で入力
# コンテナの起動
> docker-compose up -d nginx
Recreating laradock_docker-in-docker_1 ... done
Recreating laradock_workspace_1        ... done
Recreating laradock_php-fpm_1          ... done
Recreating laradock_nginx_1            ... done

コンテナの起動を確認してみましょう。

# laradockディレクトリ上で入力
# コンテナの一覧を表示
> docker-compose ps
           Name                          Command                State                      Ports
------------------------------------------------------------------------------------------------------------------
laradock_docker-in-docker_1   dockerd-entrypoint.sh            Up         2375/tcp
laradock_mysql_1              docker-entrypoint.sh mysqld      Exit 255   0.0.0.0:3306->3306/tcp, 33060/tcp
laradock_nginx_1              /bin/bash /opt/startup.sh        Up         0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1            docker-php-entrypoint php-fpm    Up         9000/tcp
laradock_phpmyadmin_1         /run.sh supervisord -n -j  ...   Exit 255   0.0.0.0:8080->80/tcp, 9000/tcp
laradock_redis_1              docker-entrypoint.sh redis ...   Exit 255   0.0.0.0:6379->6379/tcp
laradock_workspace_1          /sbin/my_init                    Up         0.0.0.0:2222->22/tcp

Stateがupになっていれば起動していることになります。
http://localhostにアクセスします。
nginx_404.PNG

nginxの起動を確認できました。Not Foundは後ほど対処します。

4.Laravelプロジェクトの作成

laradock_workspace_1にアクセスしLaravelアプリケーションを作成します。

# laradockディレクトリ上で入力
# workspaceコンテナにアクセス
# root@xxxxxxxx:/var/www$ というディレクトリに入る
> docker-compose exec --user=laradock workspace bash

# Laravelアプリケーションの作成
# ここではsample_appという名前で作成
root@xxxxxxxx:/var/www$ composer create-project laravel/laravel sampleApp

5.nginxの設定ファイルの編集

root@xxxxxxxx:/var/www$ exit

# laradockディレクトリ上で入力
# コンテナの停止
> docker-compose stop

# laradockディレクトリ上で入力
# dockerworkspace/laradock/nginx/sitesの中のdefaul.confをdefault.conf.backup等の名前にしコピー
> cd nginx/sites
> cp default.conf default.conf.backup

# 同じディレクトリにあるlaravel.conf.exampleの中のテキストをコピーし、default.confにペースト
> cp laravel.conf.example default.conf

dockerworkspace/laradock/nginx/sites/default.confを編集します。

default.conf
# 一部抜粋
server_name laravel.test;
  # root /var/www/laravel/public;     # 変更前
    root /var/www/sampleApp/public;    # 変更後
    index index.php index.html index.htm;

さらにlaradockディレクトリにある.env(はじめにコピーして作ったファイルですね)も編集します。

 .env
# 一部抜粋
### Paths #################################################

# Point to the path of your applications code on your host
# APP_CODE_PATH_HOST=../            # 変更前
APP_CODE_PATH_HOST=../sampleApp    # 変更後

6.LaravelのWelcome画面を見る

> docker-compose up -d nginx

http://localhostにアクセスします。
laravel_welcome.PNG

追記

MySQLに接続

設定ファイルの編集

Laradockの初期設定ではMySQLの最新が設定されており認証でエラーが出てしまうそうです。laradock/.envを編集します。

laradock/.env
### MYSQL #################################################

# MYSQL_VERSION=latest   # 変更前
MYSQL_VERSION=5.7        # 変更後

Laravelの設定もします。sample_app/.envを編集します。

sampleApp/.env
DB_CONNECTION=mysql
# DB_HOST=127.0.0.1        # 変更前
DB_HOST=mysql              # 変更後
DB_PORT=3306
# DB_DATABASE=homestead    # 変更前
# DB_USERNAME=homestead    # 変更前
DB_DATABASE=default        # 変更後
DB_USERNAME=default        # 変更後
DB_PASSWORD=secret

これでMySQLへの接続ができます。

migrateしてみる

# laradockディレクトリ上で入力
> docker-compose up -d nginx mysql
# 省略
> docker-compose exec --user=laradock workspace bash
root@xxxxxxxx:/var/www$ php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table

DBを見てみる

# laradockディレクトリ上で入力
> docker-compose exec mysql bash
root@xxxxxxxxxx:/# mysql -udefault -psecret
# 省略
mysql> use default;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql > show tables;
+-------------------+
| Tables_in_default |
+-------------------+
| migrations        |
| password_resets   |
| users             |
+-------------------+
4 rows in set (0.00 sec)

最後に

DockerはLaradockでしか触ったことがないので間違った認識、改善点等ありましたらご指摘お願いいたします。:bow_tone1:
Docker勉強しよう、、、。

1
2
1

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
2