setono/deployer-supervisor

Handle supervisor configs in your deployment

v1.0.0 2020-11-11 14:46 UTC

README

Latest Version Latest Unstable Version Software License Build Status

Installation

$ composer require setono/deployer-supervisor

Usage

In your deploy.php file require the recipe:

<?php

namespace Deployer;

require_once 'recipe/setono_supervisor.php';

// ...

This will automatically hook into the default flow of Deployer.

Then create a config file in etc/supervisor (in your repository) like so:

;etc/supervisor/service1.conf
[program:service1]
command={{bin/php}} {{bin/console}} messenger:consume async
user={{http_user}}
autostart=true
autorestart=true

Notice that you can use Deployer's parameters within your config file!

Add delay before (re)starting a service

;etc/supervisor/service1.conf
[program:service1]
command=bash -c "sleep 10 && exec {{bin/php}} {{bin/console}} messenger:consume async"
user={{http_user}}
autostart=true
autorestart=true
startsecs=15

In this example we insert a delay of 10 seconds before running the actual command and we changed the startsecs to 15 (5 seconds more than the delay) so that supervisor doesn't count the process as running before after 15 seconds.