Sign inSign up

andersonpem/laravel-worker-scheduler

By andersonpem

•Updated over 5 years ago

Alpine, Supervisor, PHP-FPM and SuperCronic for a containerized Laravel Scheduler and Worker

Image
0

139

andersonpem/laravel-worker-scheduler repository overview

⁠Worker and Scheduler for a Laravel app

This container runs Supervisord on Alpine to make sure your workers and your schedule are running always.

⁠Contents

This image is built upon the official PHP 7.3 FPM (Alpine flavour) Docker image.

In it are added:

  • The Redis connector driver.

  • Supercronic (for handling cron tasks with extra verbosity)

⁠How to

A docker-compose entry is as follows:

## This is an example file. Use it straight in your project!
version: "3.6"
services:
    worker-scheduler:
        image: andersonpem/laravel-worker-scheduler:1.0
        environment:
          # The number of worker processes to spawn
          NUM_WORKERS: 2
          # The application's document root
          APP_DOCUMENT_ROOT: /var/www/html
        volumes:
          # Map the document root
          - ./:/var/www/html
          # Map a crontab file that will run with Supercronic
          - ./cron:/etc/crontabs/root

⁠Environment variables

NUM_WORKERS specifies the number of worker proccesses that will be created by Supervisord.

APP_DOCUMENT_ROOT is the laravel root directory (not /public)

⁠Volumes

You must map your project's root directory to the same place where the environment variable APP_DOCUMENT_ROOT is on the container, like specified in the docker-compose example above.

/etc/crontabs/root is the crontab file that supercronic looks up when the container starts. Map a file with your cron routine for the project, like so:

* * * * * cd /var/www/html && php artisan schedule:run >> /dev/null 2>&1

You must use crontab valid syntax on the file.

⁠Logging

Logs of this container are available in the following folders:

/var/log/worker: Supervisor log storage for the Worker processes.

/var/log/scheduler: Supervisor log storage for the SuperCronic and sheculer activities

/var/log/supervisord: Supervisord main logs and pid file.

⁠Audit

Source code for this image is available in this repository in the folder named .docker.

https://gitlab.com/andersonpem/laravel-worker-scheduler⁠

⁠Building from source

You can build with the following command:

docker build -f ./.docker/laravel-worker-scheduler/Dockerfile -t laravel-worker-scheduler  .

⁠License

This image is licensed under MIT License.

⁠Author

Anderson is a brazilian software developer and future DevOps engineer.

⁠Support this project

Wanna buy me some coffee? Coffee is never enough XD

https://www.buymeacoffee.com/andersonpem⁠

Have some bitcoin lying around? I have a wallet :) tip the project there:

1AuAt29skEdmtQBG4bJYEnHnbhVbpcZn

Tag summary

Content type

Image

Digest

Size

125.1 MB

Last updated

over 5 years ago

docker pull andersonpem/laravel-worker-scheduler:1.0