Help us understand the problem. What is going on with this article?

Laradockで開発環境構築の手順(初心者)

Laradockの導入手順

参照サイト一覧:
https://tadaken3.hatenablog.jp/entry/laradock-laravel
https://github.com/laradock/laradock/issues/251

1. 導入手順まとめ

1. 自分のプロジェクトを作成する
mkdir yourProject
現在のディレクトリ構成は以下のようになる。
development
┗ yourProject

2. プロジェクト内に移動する
cd yourProject
上記に続いて、Laradockをインストールする。
git clone https://github.com/LaraDock/laradock.git
現在のディレクトリ構成は以下のようになる。
development
┗ yourProject
 ┗ laradock

3. Laradock内に移動する
cd laradock
上記に続いて、env-exampleというファイルを.envという名前でコピーする。
cp env-example .env

4. .envファイルの内容を修正する
自分の開発環境にあった設定を施してやる必要があるので、ファイルの内容の書き換えを行う。
* 個人的にこの辺りから躓き始めた。(ほんとこの辺が苦手...)
(sudo) vi .env <- このコマンドで.envファイルの変更を行う。
(sudo = 他のユーザ権限でコマンドを実行するときに使う)
開発環境の構築をするのでルートディレクトリではなく以下のように変更を行う。
- DATA_PATH_HOST=~/.laradock/data
+ DATA_PATH_HOST=.laradock/data

5. MySQLの設定を変更
まずは、MySQLのバージョンを確認する。
mysql --version
確認が終わったら、.envファイルの以下の部分を変更します。

### MYSQL #################################################

MYSQL_VERSION=8.0.12(初期設定は、latest)
MYSQL_DATABASE=mydb(接続したいDB名を記載)
MYSQL_USER=root
MYSQL_PASSWORD=PASSWORD(MySQLに接続する際のパスワード)
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_ENTRYPOINT_INITDB=./mysql/docker-entrypoint-initdb.d

5. Docker コンテナを起動する
ここのエラーでもっとも時間を割いてしまった。
docker-compose up -d nginx mysql phpmyadmin
上記のコマンドを叩いて問題がなければ次へ(6. 接続状態の確認)!!!
自分の場合は以下のようなエラーが出ていました。(原因は特定できておらず定かではないです)

laradock_docker-in-docker_1 is up-to-date
Starting laradock_mysql_1 ...
laradock_workspace_1 is up-to-date
laradock_php-fpm_1 is up-to-date
Starting laradock_nginx_1_df13abf0034c ... error

Starting laradock_mysql_1              ... done
c31e7511cefa04a840e9e): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)

ERROR: for nginx  Cannot start service nginx: driver failed programming external connectivity on endpoint laradock_nginx_1_df13abf0034c (ae021353106c09b15fddecaad8ed9d342abb355593fc31e7511cefa04a840e9e): Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE)
ERROR: Encountered errors while bringing up the project.

このようなエラーが出た場合の対応策(他ケースでも応用できます)としては、
docker-compose ps
上記のコマンドを叩いて、コンテナ内で立ち上がっているもののStatusを確認します。
laradock_nginx_1_df13abf0034c nginx Exit 128
自分の場合は、この部分がエラーを引き起こしている箇所だったので、nginx Exit 128 でググりました。
この場合、80番ポートを覗いてやる必要があります。
sudo lsof -i :80
詳しくはまだ調べきれていませんが、httpd関係の接続が邪魔をしていたみたいです。
ここで思ったこと、「げっ!めっちゃ色々動いとる!こりゃ立ち上がらんわけだ。」なので、
sudo killall httpd <- 一旦、全部ストップしちゃう。

sudo launchctl unload /System/Library/LaunchDaemons/org.apache.httpd.plist

上記のコマンドの意味は正直まだわかっていませんが、これで自分は動くようになりました。
再度、
docker-compose up -d mysql nginx
動いたー!!!

6. 接続状態の確認
http://localhost
上記に接続してみると、
20180629230557.png
このような画面が表示されると思いますが、ここにLarvelがインストールされることになります。
http://localhost:8080
上記に接続してみると、phpMyAdminツールの画面が表示されます。さきほど、.envで設定したユーザー名でログインできるか確認しておきましょう。
20180629230520.png

また、sshでコンテナに接続できるコマンドは以下の通りです。

docker-compose exec workspace bash

sshで接続後、プロジェクトの作成をします。

composer create-project laravel/laravel

終了!お疲れ様でーす!

Why do not you register as a user and use Qiita more conveniently?
  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
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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