knaka Tech-Blog

AI, IoT, DIYエレクトロニクス, データサイエンスについて投稿予定です。

Laravel 5.8 +mysql + nginxで、docker環境の設置編

index:

概要:

前の Laravel 5.8 関係で、
docker環境の ,ubuntu16 構築等のメモとなります

環境

php7.3
Laravel 5.8
mysql 5.7
docker
docker-compose
ubuntu 16 / VirtualBox

参考の設定

github.com

参考

docker追加方法は、省略しますが。下記参考しました

https://qiita.com/ossan_pg/items/2d2ff8e9ee13ea32b3ab

https://docs.docker.com/install/linux/docker-ce/ubuntu/

・Dockerfile 等の参考
https://qiita.com/bzy/items/f251d47cba836a3a92df

version

$ docker --version
Docker version 19.03.5, build 633a0ea838

$ docker-compose --version
docker-compose version 1.22.0, build f46880fe

Dockerfile など

・docker-compose.yml
https://github.com/kuc-arc-f/docker_lara58/blob/master/docker-compose.yml

version: '3'

services:
 web:
    build: ./docker-nginx
    ports:
        - 80:80
    depends_on:
        - app
    volumes:
        - ./:/var/www/html
        - ./docker-nginx/default.conf:/etc/nginx/conf.d/default.conf
    links:
        - app
 app:
    build: ./docker-php
    depends_on:
        - db
    links:
        - db
    volumes:
        - ./:/var/www/html
 db:
    image: mysql:5.7.19
    ports:
      - 3306:3306
    environment:
      MYSQL_ROOT_PASSWORD: root         #
      MYSQL_DATABASE: laravel         #
      MYSQL_USER: db_user           #ユーザ名
      MYSQL_PASSWORD: password   #ユーザ用パスワード

php
https://github.com/kuc-arc-f/docker_lara58/blob/master/docker-php/Dockerfile

・nginx
https://github.com/kuc-arc-f/docker_lara58/blob/master/docker-nginx/Dockerfile

手順など

docker追加、設定完了後

最初は、時間かかります。
URLは 、http://localhost/
で、nginx が開きます。

docker-compose up -d

Laravel 5 追加

docker 側に、ログインします

docker-compose exec app /bin/bash


composer 追加

php -r "readfile('https://getcomposer.org/installer');" | php

Laravel 追加

php composer.phar create-project --prefer-dist laravel/laravel myblog "5.8.*"
php composer.phar require laravelcollective/html "5.8.*"

・ヘルパは、後回しで。
migrate成功後でも、良いかと思います。


http://localhost/ で、Laravel 起動できます

Laravel 設定

.env

DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=root

・DB周りですが、DB_HOST=localhost 等は、
docker の場合、接続出来ませんでしたので、
docker mysqlコンテナ名 (db) に、変更しています。

失敗時は、下記のような。Connection refusedエラーが出力されていました
====================
SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema

migrate

php artisan migrate

・成功すれば、モデル等使えると。思います
mysql 8.0 は、接続認証等のエラーで初期は、NGでしたが。
今回は、 mysql 5に、変更しています。

mysqlにroot ログインして、接続や確認を行う場合。下記参考です

docker-compose exec db /bin/bash

mysql -u root -proot laravel