Running Laravel with Microservices Architecture using Docker Containers.
Inspired by Laradock
The following containers will be run by default:
- nginx
- application (for storing project source code)
- php-fpm
- workspace (for working around with the all project)
- mysql
- mysql_test (for running integration test)
- mongodb
- redis
- data (for storing
mysql
,mongo
,redis
data) - data_test (for storing
mysql
,mongo
,redis
data while running test) - logs (for storing some system logs)
- Copy file
docker-compose.yml
to your Laravel folder. - You should change the
project
keyword with your real project name indocker-compose.yml
file. - You have to change the database's variables to fit your
.env
file configuration - If you do not need any services (such as
mongodb
orredis
), simply remove it fromdocker-compose.yml
- The project's persistant data (mysql, redis, mongodb data ...) will be stored inside this
.docker
folder. It should be added to.gitignore
. - Run
docker-compose up -d
and enjoy. - Run
docker exec -it project_workspace bash
to enter workspace container. You can runphp artisan
command inside this container.
Our docker-compose.yml
is powered by the following images: