wearede / larawell

Monolithic docker container to run your Laravel apps: MariaDB/Redis/Nginx/PHP7.0-Fpm with properly configured cron and queue

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

Monolithic docker container to run your Laravel apps: MariaDB/Redis/Nginx/PHP7.0-Fpm with properly configured cron and queue


Languages

Language:Shell 100.0%