Шаги, которые я выполняю для настройки Laravel с помощью Docker: в моей локальной системе у меня не установлены PHP, Composer, Apache, MySQL, phpMyAdmin и т. Д. У меня в системе установлены только Git и Docker.
git clone https://github.com/laravel/laravel.git
создать файл docker-composer.yml в корневом каталоге проекта.
version: "3"
services:
db:
image: mysql:5.7
environment:
MYSQL_ROOT_PASSWORD: pass
MYSQL_DATABASE: db
MYSQL_USER: root
MYSQL_PASSWORD: pass
ports:
- "3306:3306"
web:
image: php:7.2.2-apache
container_name: web_laravel
depends_on:
- db
volumes:
- ./:/var/www/html/
ports:
- "4000:80"
stdin_open: true
tty: true
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- db
external_links:
- db:mysql
ports:
- "9191:80"
environment:
MYSQL_USER: root
MYSQL_PASSWORD: pass
MYSQL_ROOT_PASSWORD: pass
PMA_HOST: db
запустить команду изкорень проекта.
docker-compose up
Эта команда извлекает все изображения (php: 7.2.2-apache, phpmyadmin / phpmyadmin, mysql: 5.7) из локального кэша или Docker Hub и запускает три контейнера для этих изображений.
Теперь мне нужно взаимодействовать с контейнером изображения php: 7.2.2-apache с именем web_laravel (см. Файл yml), чтобы я мог добавить расширения PHP и Composer для запуска проекта Laravel.
запустите эту команду.
docker exec -it web_laravel /bin/bash
Теперь у меня есть доступ для запуска любой команды в запущенном контейнере web_laravel, поэтому я установил расширения Composer и PHP, такие как mbstrings, pdo, pdo_mysql и т. д.
Затемустановить зависимость Laravel, используя установку composer, установить разрешение для папок хранилища и начальной загрузки / кэша и запустить php artisan key: generate.
открыть localhost: 4000, и я смогу увидеть домашнюю страницу Laravel:
На данный момент все хорошо.Проблема начинается сейчас, когда я подключаюсь к своей БД.
Следующая команда для запуска (я все еще в контейнере):
php artisan migrate
и ошибки:
Illuminate\Database\QueryException : SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations)
Illuminate\Database\QueryException : could not find driver (SQL: select * from information_schema.tables where table_schema = blog and table_name = migrations)
Я могу открыть phpMyAdmin (http://localhost:9191) и может создавать БД, таблицы и операции, связанные с БД. У меня есть БД с именем blog .
MySQL env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=pass