Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
27
Help us understand the problem. What is going on with this article?
@don-bu-rakko

【2019年2月】Laradockの初期環境設定方法

More than 1 year has passed since last update.

Laradockのセットアップに関する手順書が欲しかったのですが、ググって出てくるサイトがどれもバラバラの手順を示していて、結局何をしたらいいのかを判断するまでにかなり時間がかかってしまいました。。

なので、自分用の備忘録を兼ねて、laradockの初期設定方法をまとめておきます。

身も蓋もないことですが、こういうTipsは公式サイトを読むのが一番です。。
が、この投稿がその橋渡しとなれば幸いです!

前提

  • Mac OS を利用していること
  • Docker for Mac がインストールされていること
  • git を利用できること

laradockをcloneする

mkdir [ディレクトリ名] && cd [ディレクトリ名]で、ディレクトリを作成し、移動します。

~/laravel
❯ mkdir sample_app && cd sample_app

git cloneしてきます。

~/sample_app
❯ git clone https://github.com/LaraDock/laradock.git

すると、laradockディレクトリが作成されます。
存在を確認した後、laradockディレクトリに移動します。

~/sample_app
❯ ls
laradock

~/sample_app
❯ cd laradock

.envファイルの作成・編集

cpコマンドを用いて、.envファイルを作成します。

~/sample_app/laradock master
❯ cp env-example .env

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

というのも、2018年2月1日現在、mysqlのバージョンが8.0以上になっているとセキュリティの関係でDockerがうまく動作しません。

こちらに詳細をまとめてあります↓
Laradock で mysql がうまく動作しない時は ( mysqlコンテナが起動しない、migration 出来ない)

ということで、先ほど作成したlaradockディレクトリ内の.envファイルを編集します。

laradock/.env
# MYSQL_VERSION=latest 変更前
MYSQL_VERSION=5.7 #変更後

ついでにMYSQLに関する情報も確認しておきましょう。
公式ドキュメントを読むと、

The default username and password for the root MySQL user are root and root.

とのこと。MYSQL_ROOT_PASSWORDrootになっているのがわかりますね。

~/sample_app/laradock master
❯ cat .env |grep MYSQL_
WORKSPACE_INSTALL_MYSQL_CLIENT=false
MYSQL_VERSION=5.7
MYSQL_DATABASE=default
MYSQL_USER=default
MYSQL_PASSWORD=secret
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

コンテナを作成する

その上で、docker-compose up -dコマンドを入力し、コンテナを立ち上げます。
ちなみに、-dオプションはdetatchedの略で、バックグラウンドでコンテナを実行してくれるものです。

~/sample_app/laradock master
❯ docker-compose up -d nginx mysql phpmyadmin
Recreating laradock_docker-in-docker_1 ... done
Recreating laradock_mysql_1            ... done
Recreating laradock_phpmyadmin_1       ... done
Recreating laradock_workspace_1        ... done
Recreating laradock_php-fpm_1          ... done
Recreating laradock_nginx_1            ... done

docker psコマンド、もしくはdocker container lsコマンドでコンテナが立ち上がっているかを確認しておきましょう。

~/sample_app/laradock master
❯ docker container ls
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                      NAMES
592e749b5196        laradock_nginx        "/bin/bash /opt/star…"   5 minutes ago       Up 5 minutes        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   laradock_nginx_1
055056a185a1        laradock_php-fpm      "docker-php-entrypoi…"   5 minutes ago       Up 5 minutes        9000/tcp                                   laradock_php-fpm_1
8695c852dc7d        laradock_workspace    "/sbin/my_init"          5 minutes ago       Up 5 minutes        0.0.0.0:2222->22/tcp                       laradock_workspace_1
ce452294c851        laradock_phpmyadmin   "/run.sh supervisord…"   5 minutes ago       Up 5 minutes        9000/tcp, 0.0.0.0:8080->80/tcp             laradock_phpmyadmin_1
31cac2dbfc90        laradock_mysql        "docker-entrypoint.s…"   5 minutes ago       Up 5 minutes        0.0.0.0:3306->3306/tcp, 33060/tcp          laradock_mysql_1
4ff26c75d351        docker:dind           "dockerd-entrypoint.…"   5 minutes ago       Up 5 minutes        2375/tcp                                   laradock_docker-in-docker_1

無事に起動していますね。

Workspace上にLaravelを立ち上げる

まずはworkspaceに入ります。rootユーザーでログインしてしまうと後ほどcomposerに怒られるので、laradockユーザーでログインします。

~/sample_app/laradock master
❯ docker-compose exec --user=laradock workspace /bin/bash

ログイン後のユーザー名がlaradock@...となっていればOKです。

laradock@8695c852dc7d:/var/www$

ではいよいよcomposerコマンドを用いてLaravelをインストールしましょう。
my-first-appの部分は自分の好きな名前を入力してください。

laradock@8695c852dc7d:/var/www$ composer create-project laravel/laravel my-first-app

インストールが完了するのにまあまあ時間がかかるため、気長に待ちます。
ディレクトリが作成されているかを一応確認しておきましょう。

laradock@8695c852dc7d:/var/www$ ls
laradock  my-first-app

.envファイルを編集する

インストールが完了したらmy-first-appディレクトリ内にある.envファイルを編集します。
注意:先ほど編集したのはlaradockフォルダ内の.envファイルです!間違えないように!

/var/www/my-first-app/.env
DB_HOST=mysql # 127.0.0.1 から変更
DB_DATABASE=default # homestead から変更
DB_USERNAME=default # homestead から変更

そしたら今度は、laradockディレクトリ内の.envファイルを編集します。ややこしいですね。。
APP_CODE_PATH_HOST=../となっているものを、自分が先ほど作成したLaravelプロジェクト名に変更します。

まずはexitコマンドを叩いて、仮想環境から抜け出ましょう。

laradock@8695c852dc7d:/var/www/my-first-app$ exit

そして、.envファイルを編集します。

~/sample_app/laradock/.env
APP_CODE_PATH_HOST=../my-first-app/

ここまで設定が終わったらdockerを再起動します。

~/sample_app/laradock master
❯ docker-compose stop
Stopping laradock_nginx_1            ... done
Stopping laradock_php-fpm_1          ... done
Stopping laradock_workspace_1        ... done
Stopping laradock_phpmyadmin_1       ... done
Stopping laradock_mysql_1            ... done
Stopping laradock_docker-in-docker_1 ... done

~/sample_app/laradock master
❯ docker-compose up -d nginx mysql phpmyadmin
Recreating laradock_mysql_1            ... done
Recreating laradock_docker-in-docker_1 ... done
Recreating laradock_workspace_1        ... done
Recreating laradock_phpmyadmin_1       ... done
Recreating laradock_php-fpm_1          ... done
Recreating laradock_nginx_1            ... done

http://localhost/ にアクセスしてLaravelのTop画面が出てきたら成功です!!

image.png

念の為、migrateコマンドが通っているかを確認しましょう。

~/sample_app/laradock master 2m 23s
❯ docker-compose exec workspace /bin/bash
root@30a950d2b38e:/var/www# php artisan migrate
Nothing to migrate.

おまけ: phpmyadminを使う

http://localhost:8080/ にアクセスして下記のように打ち込めばOK!

image.png

以上!

27
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
don-bu-rakko
ECコンサルタントしたり、SEしたりしてました。今はWebサービス開発中。JavaScript (Vue.js, Nuxt.js) / PHP (Laravel) / Python をよく使っています。 G's Academy Lab6th。
proglearn
"満足の最大化"をキーワードにWebサービスを生み出す会社です。議事録をDXするOneMinutes, オンライン動画試験のLINEプラットフォームNEXAM などを運営しています

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
27
Help us understand the problem. What is going on with this article?