Laravel и база данных Docker-Mysql | Docker | Laravel 5.5 | Laravel 5.6

Опубликовано: 29 Сентябрь 2024
на канале: DKA-DEVELOP
11,294
209

Подписывайтесь на канал: https://goo.gl/4pPb9b
============
Не бойтесь открывать ссылки они сделаны с помощью сервиса google: https://goo.gl/

Дешевый и качественный хостинг в Европе:
https://billing.time4vps.eu/?affid=826

Вы можете ознакомиться с инструкцией на сайте:
https://dka-develop.ru/blog/article/4...

Документация docker:
https://docs.docker.com/

Настроим репозиторий:
sudo apt-get update

sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common

curl -fsSL https://download.docker.com/linux/ubu... | sudo apt-key add -

sudo apt-key fingerprint 0EBFCD88

Теперь мы можем установить докер из репозитория:

sudo apt-get update
sudo apt-get install docker-ce

Для проверки можете запустить команду:
sudo docker run hello-world

Установка Docker-Compose:
https://docs.docker.com/compose/insta...

Ubuntu:
sudo -i
curl -L https://github.com/docker/compose/rel...`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

Настроим привилегии:
sudo chmod +x /usr/local/bin/docker-compose

И проверим как он успешно был установлен:
docker-compose --version

Создадим директорию в домашней папке нашего пользователя, для удобства:
cd ~
mkdir docker

В ней создадим директорию с именем проекта:
cd ~/docker
mkdir mysql

Перейдём в данную директорию. Создадим файл с именем, это обязательно:
docker-compose.yml

Cодержимое следующее:

version: '2'

services:
mariadb:
image: 'bitnami/mariadb:latest'
environment:
- MARIADB_ROOT_PASSWORD=laravelpass
ports:
- '3307:3306'
volumes:
- /home/dkadevelop/docker/mysql/db:/bitnami

В директиве volumes:
dkadevelop измените на имя своего пользователя или поменяйте путь /home/dkadevelop/docker/mysql/db на свой.

Перейдем в директорию с нашим проектом и файлом docker-compose.yml

Напишем команду:
sudo docker-compose up

Для запуска docker в фоне, как демон, можете использовать данную команду:
docker-compose up -d

Команда для подключения через терминал к серверу:
mysql -u root -h 127.0.0.1 -P 3307 -p

Запускаем команду создания базы данных:
CREATE DATABASE `laravel_blog` CHARACTER SET utf8 COLLATE utf8_general_ci;

Выход:
exit;

* параметры сервера: порт и имя пользователя отличаются от настройки в видео #4, будьте внимательны.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3307
DB_DATABASE=laravel_blog
DB_USERNAME=root
DB_PASSWORD=laravelpass

Каждый раз как вы меняете настройки в файле .env или config/app.php

Необходимо сбрасывать кэш конфига, иначе изменения не вступят в силу.
php artisan config:cache

Теперь после настройки подключения в первую очередь нужно запустить миграции.
php artisan migrate

Если возникла ошибка вида:

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Для решения данной проблемы добавить две строки в сервис провайдер AppServiceProvider.php:

Schema::defaultStringLength(191);
use Illuminate\Support\Facades\Schema;
И запускайте миграции снова.


Наши площадки:
https://dka-develop.ru
https://dreamtooz.ru
https://dreamclever.ru

Начальные инструкции: 0:11
Установка Docker: 2:10
Установка Docker-Compose: 3:42
Создание базы данных в контейнере docker-mariadb: 7:06
Laravel настройка подключения, запуск миграций и известная ошибка: 8:05