Need someone's help who is expert in docker and laravel.
Steps I follow to setup laravel using docker.In my local system I don't have installed php, composer, apache, mysql, phpmyadmin etc.I only have git and docker install in my system.
1). git clone https://github.com/laravel/laravel.git
2). create docker-composer.yml file on project root.
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
3). run command from project root.
docker-compose up
this command will fetch all the images (php:7.2.2-apache, phpmyadmin/phpmyadmin, mysql:5.7) from local cache or docker hub and start 3 containers for these images.
now I need to interact with php:7.2.2-apache image's container called web_laravel (see in yml file) so I can add php extensions and composer to run laravel project.
4). run this command.
docker exec -it web_laravel /bin/bash
now I have access to run any command in running web_laravel container so I've installed composer and php extensions like mbstrings, pdo, pdo_mysql etc.
then install laravel dependency using composer install.set permission for storage and bootstrap/cache folders and run php artisan key:generate.
open localhost:4000 and boooom.
I'm able to see laravel home page.
at this point all is good not have any problem. problem starts now when I'm connecting to my DB.
next command to run.(I'm still within container)
php artisan migrate
and the error is:
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)
I'm able to open phpmyadmin (http://localhost:9191) and can create DB, table and operations related DB. I've DB called blog.
mysql env variables
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=pass
Any help would be appreciate.
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire