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
■ 参考の設定
ここから先は
Laravel 5.8 や、Vue.js開発の事例、開発ノウハウに関する記事を集めました。第1回目, ■ 免責事項 / 注記, 内容につ…
この記事が気に入ったらチップで応援してみませんか?