Implement persistent/reliable cron service using supervisor. #1041
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses #760.
There were several non-obvious challenges which I want to document here.
docker-compose exec phpfpm
runs as root by default (not app), which sucks. thankfully, we can update the bin/cli and bin/clinotty wrappers to use theapp
user and maintain existing behaviour (and I have done so)./dev/stdout
is inaccessible by an unprivileged user in a container started as root moby/moby#31243), which makes it difficult to have php-fpm (running as app) to log to the docker console. The workaround is to settty: true
in compose.yaml and addapp
to thetty
group.Other notes
bin/cron
has been updated and can still be used to start/stop cron or check statusenv/phpfpm.env
to control whether you want cron to be started when the container is started.Alternative approaches:
At the moment, cron support is only implemented in the PHP 8.2 image. If this approach is acceptable, I would be happy to extend it to support the PHP 8.1 image as well.