簡単な概要
PHPのフレームワークLaravelの開発環境をlaradockを使えば簡単だよーって話を聞いて、実際にやって見たんだけど公式のドキュメントを見ても上手くいかないしメッチャ苦労しました。。
取り敢えずlaradockでlaravelを動かすってところまでを書きました!
ちなみにlaravel 5.6です。
migrationでも苦労したんでそのうち記事書くよー
準備 
今回はdocker for mac とgitを使うよ!
 このページを参考にしたよ!全部英語で読むの大変(笑)!
このページを参考にしたよ!全部英語で読むの大変(笑)!
http://laradock.io/
参考のやつを見ながらやってみる!
まずLaradockのプロジェクトフォルダを作ります!
ファインダーでもいいけど今回はターミナルでやります!
mkdir laravelwork
cd laravelwork
場所とか名前は自由でにしておk!
必要なファイルをgitからダウンロード
git clone https://github.com/Laradock/laradock.git
.envにenv-sampleの内容をコピー!
.envはあとで使うdocker-compose.ymlに必要な設定が書かれてる
なんか難しそうだから分かんなくても大丈夫!
cp env-example .env
コンテナを実行!最初は結構時間かかるよー
docker-compose up -d nginx mysql phpmyadmin redis workspace 
今度はデータベースの設定!
.envを開いて下の設定を追加!
DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd
That's it! enjoy :) 
公式の説明はこれで終わり!
ブラウザでhttp://localhost開いてみると、、、、
動かねっーーーーーーー
もう激おこモードだわwwww









とりあえず、docker-compose stop
落ち着いて解決方法を調べた、、、、
まずmacに初めから入っているapacheが今回使うnginxのポートと被っちゃてるのでポートを変更しなきゃらしい!
docker-compose.yml編集するよ!使える人はvimとかで!ファイルエディターでもおk!
今回は8001番ポートを使います!
### NGINX Server #########################################
     nginx:
       build:
         context: ./nginx
         args:
          - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
          - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
       volumes:
           - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
            - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
           - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
       ports:                                                                                                   
         ## 変更前
               #- "${NGINX_HOST_HTTP_PORT}:80"
         ## 変更後
                - "8001:80"
         ## 変更前
               #- "${NGINX_HOST_HTTPS_PORT}:443"
         ## 変更後
                - "443:443"
       depends_on:
           - php-fpm
       networks:
          - frontend
           - backend
そうするとこんな感じになった!
171 ### NGINX Server #########################################
172     nginx:
173       build:
174         context: ./nginx
175         args:
176           - PHP_UPSTREAM_CONTAINER=${NGINX_PHP_UPSTREAM_CONTAINER}
177           - PHP_UPSTREAM_PORT=${NGINX_PHP_UPSTREAM_PORT}
178       volumes:
179         - ${APP_CODE_PATH_HOST}:${APP_CODE_PATH_CONTAINER}
180         - ${NGINX_HOST_LOG_PATH}:/var/log/nginx
181         - ${NGINX_SITES_PATH}:/etc/nginx/sites-available
182       ports:
183         - "8001:80"
184         - "443:443"
185       depends_on:
186         - php-fpm
187       networks:
188         - frontend
189         - backend                                                                                              
190 
よし!確認じゃー!
docker-compose up -d nginx
 
やったーーーー!nginx動いたぜー!!
あとはLaradockのプロジェクトを作るだけ!!
お疲れモード突入だけど頑張ろう! ゴールまであともうちょっと!
ゴールまであともうちょっと!


Laravelのプロジェクトを作るためにdockerのworkspaceコンテナに入ります!
docker-compose psで立ち上がっているコンテナの名前を調べて、、、、
        Name                      Command              State                     Ports                   
---------------------------------------------------------------------------------------------------------
laradock_nginx_1       nginx                           Up      0.0.0.0:443->443/tcp, 0.0.0.0:8001->80/tcp
laradock_php-fpm_1     docker-php-entrypoint php-fpm   Up      9000/tcp                                  
laradock_workspace_1   /sbin/my_init                   Up      0.0.0.0:2222->22/tcp                      
docker exec -it laradock_workspace_1 /bin/bash
 でコンテナに入る!
でコンテナに入る!
今回はtestAppって名前だけど好きなように勝手に変えてね

composer create-project laravel/laravel testApp
を実行して、新しいLaravelのプロジェクトを作ってみるけど
Do not run Composer as root/super user! See https://getcomposer.org/root for details
エラーーーーー!!クッソ最後の最後で裏切られたーーーーーーー
と思ったけど待ってるとちゃんと動いた(笑)!じっと我慢!
最後に.envのローカルファイルとdockerのコンテナのディレクトリが紐づいてるとこの設定をしてあげます!
# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../testApp/
# ちなみに変更前
# APP_CODE_PATH_HOST=../
# Point to where the `APP_CODE_PATH_HOST` should be in the container. You may add flags to the path `:cached`, `:delegated`. When using Docker Sync add `:nocopy`
APP_CODE_PATH_CONTAINER=/var/www:cached
ブラウザを再読み込みしたらできたぜ!!!
もしダメだったらこれを試して!
docker-compose restart
 kawamura_kenjiさんにコメント頂きました!あざます!!
kawamura_kenjiさんにコメント頂きました!あざます!!
 
できない人はdocker-compose stopした後にdocker-compose up -d nginxを実行して見てー!
多分できると思う!(笑)
まとめ
最初の環境構築で躓いちゃうと萎えるよね。。。。
でもがんばろう!きっとよくなる!
僕はこれをやるのに休日丸1日使っちゃたよ(笑)
分かんなかったらコメントとかから聴いてください 答えるかも(笑
答えるかも(笑 )
)
以上、終わり!
バイバーイ

参考にしたページ
参考にさせてもらったページです!
ありがとうございました!
https://qiita.com/kiida510/items/cc31453f8034ceb73487
https://qiita.com/akokubu/items/c79bb7128d7b16a20a22

