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

■ 概要:

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

■ 環境

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

■ 参考の設定

■ 参考のサイト様

docker 追加方法は、下記参考しました

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

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

・Dockerfile 等の参考

■ 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
   volumes:
       - ./db/mysql_data:/var/lib/mysql
   ports:
     - 3306:3306
   environment:
     MYSQL_ROOT_PASSWORD: root         #
     MYSQL_DATABASE: laravel         #
     MYSQL_USER: db_user           #ユーザ名 
     MYSQL_PASSWORD: password   #ユーザ用パスワード 

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

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

■ 手順など

docker-compose up -d

docker追加、設定完了後

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

■ Laravel 5 追加

docker-compose exec app /bin/bash

docker 側に、ログインします

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

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

・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.*"

■ 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

■ 追記、 sqlite3 + Laravel の構成にする場合

・update: 2020/09/18

・sqlite3 に、対応する場合の設定となります。
docker-php/Dockerfile

FROM php:7.3-fpm
RUN apt-get update && apt-get install -y \
  vim \
  zip \
  unzip \
  iputils-ping \
  sqlite3 \
  git
RUN docker-php-ext-install pdo_mysql


apt-get の、sqlite3を追加しています。

phpコンテナに、ログインし、sqlite3が使用に可能になります。
db作成し、書き込み権限を追加すると、Laravel から書き込み可能となりました。

dbファイルは、database/ に配置した例となります。

・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
   volumes:
       - ./:/var/www/html


■ 参考の設定



続きをみるには

残り 0字

Laravel 5.8 や、Vue.js開発の事例、開発ノウハウに関する記事を集めました。第1回目, ■ 免責事項 / 注記, 内容につ…

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?