larawell
larawell copied to clipboard
Monolithic docker container to run your Laravel apps: MariaDB/Redis/Nginx/PHP7.0-Fpm with properly configured cron and queue
larawell
Monolithic docker container to run your Laravel apps: MariaDB/Redis/Nginx/PHP7.0-Fpm
Why monolothic?
Larawell uses phusion/baseimage and shares same convictions about running multiple logical services in a single container.
Includes
- MariaDB
- Redis
- Nginx
- PHP7.0-Fpm
- NodeJs
- npm
- schedule:run
- queue:work
- composer
Both schedule:run (cron) and queue:work (service) are included and running properly by default. There is no other docker container for Laravel that offers working cron or queue, so if you plan to run full featured Laravel app this should be your container of choice.
Note: Larawell uses queue:work --daemon instead of queue:listen as later was causing high CPU spikes. docker stats was reporting 10% CPU utlizaition on queue:listen versus hovering around 0.5% with queue:work --daemon.
Scripts
Container is bundled with 7 helper bash scripts. Few of them are required for correct functioning and some can be enabled on user discretion.
- 01_mariadb_initialize.sh -
- 02_mariadb_secure.sh -
- 03_mariadb_prepare_database.sh -
- 04_laravel_install.sh -
- 05_laravel_migrate.sh -
- 06_laravel_seed.sh -
- 07_mariadb_import_dump.sh -
Quick start
To build, run and daemonize you can docker-compose up -d --build.
Have a look inside docker-compose.yml you can enable redis and queue there, disabled by default.
pArtisan
To run artisan commands from host you can use partisan tool inside larawell root.