7
11

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.

LaradockでLaravel+Docker環境構築(mac)

Last updated at Posted at 2019-06-23

はじめに

大阪の会社でwebエンジニアしています。
そろそろアウトプットしていきたいのと、環境構築中ヒマなのでqiitaを書いてみようと思います。エンジニアになって2カ月と、未熟なので間違ったことを書いてしまうこともあるかと思いますが、その時はご指摘お願いします。

概要

普段、業務でLaravelを使うことが多いので、今回はlaradockを使いdokcer+Laravel×MySQL×nginxの環境を構築していきたいと思います。

###必要なものリスト

  • Docker for mac
  • Git

設定

使用するディレクトリの作成、移動

$ mkdir project
$ cd project

laradockをクローン

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

laravelを配置するフォルダ作成 

$ mkdir src

projectの最終的なディレクトリ構成

├── laradock
└── src 

クローンしたlaradockに移動

cd laradock

サンプルの環境設定ファイルをコピーして、laradockの環境設定ファイル作成

$ cp env-example .env

srcフォルダ配下にLaravelをインストールするので、パスを下記のように修正します。

### Paths #################################################

# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../src/

###dockerコンテナ起動

下記のコマンドでウェブサーバー(nginx)とデータベースサーバー(mysql)のコンテナ起動

$ docker-compose up -d nginx mysql

成功すれば下記のようになり

Creating laradock_mysql_1            ... done
Creating laradock_docker-in-docker_1 ... done
Creating laradock_workspace_1        ... done
Creating laradock_php-fpm_1          ... done
Creating laradock_nginx_1            ... done

localhostで接続するとウェブサーバー(nginx)が起動している事がわかります。
スクリーンショット 2019-06-23 17.44.49.png

docker-composeコマンドを使い Docker コンテナ上の複数のサービスを管理します。

psは表示はコンテナ一覧を表示できます。

$ docker-compose ps

下記のようにstateがupになっていればコンテナが立ち上がっている状態です。
スクリーンショット 2019-06-23 17.16.07.png

###mysqlコンテナ接続

Laradockは、現在(2019/6)では、デフォルトがmysql 8系で、認証方式がLaravel側でサポートされていないため、認証に失敗してしまいます。

なので、Laradockの下記のコマンドでmysqlコンテナに接続し、mysqlの認証方式を変更します。

デフォルトのユーザ情報

  • user: default
  • password: secret
$ docker-compose exec mysql bash
# mysql -u default -psecret

認証方式変更

mysql> alter user 'default'@'%' identified with mysql_native_password by 'secret';
Query OK, 0 rows affected (0.01 sec)

Laravelのインストール

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

$ docker-compose exec workspace bash

パッケージの更新

$ apt-get update

workspaceコンテナ内では、composerコマンドが使えるようになっているので、これを使用してlaravelをインストール

root@c3cb5c10e656:/var/www# composer create-project --prefer-dist laravel/laravel ./

上記コマンド実行後、「Do not run Composer as root/super user! See https://getcomposer.org/root for details」と警告が出ますが、composerコマンドをrootユーザで実行した事が原因です。本来はセキュリティ上良くないですが、インストールは出来るので今回はします。

インストール終了後、localhostに接続するとlaravelが立ち上がっています。
スクリーンショット 2019-06-23 18.04.45.png

mysqlへ接続

.envファイル編集(Laradockの.envファイルとは別です)

下記の値に変更

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

最後にDBがちゃんと接続されているかlaravelのartisanコマンドでデフォルトのマイグレーションファイルを実行する

root@c3cb5c10e656:/var/www# php artisan migrate

以上で環境を構築することができました。
次回は、laravelでreactを使えるように、まとめたいと思います。

7
11
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
7
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?