update to use supervisord

Update the dockerfile to use supervisord
Update supervisord config to use start caddy unless configured not to.
Updated entrypoint to handle caddy skip for supervisord.
This commit is contained in:
Michael (Parker) Parker 2024-09-27 17:36:45 -04:00
parent 967d02612d
commit 6117282909
3 changed files with 15 additions and 13 deletions

View File

@ -42,13 +42,17 @@ php artisan migrate --force
echo -e "Starting cron jobs." echo -e "Starting cron jobs."
crond -L /var/log/crond -l 5 crond -L /var/log/crond -l 5
export SUPERVISORD_CADDY=false
## disable caddy if SKIP_CADDY is set
if [[ -z $SKIP_CADDY ]]; then if [[ -z $SKIP_CADDY ]]; then
echo "Starting PHP-FPM and Caddy" echo "Starting PHP-FPM and Caddy"
caddy run --config /etc/caddy/Caddyfile --adapter caddyfile & export SUPERVISORD_CADDY=true
else else
echo "Starting PHP-FPM only" echo "Starting PHP-FPM only"
fi fi
chown -R www-data:www-data . /pelican-data/.env /pelican-data/database chown -R www-data:www-data . /pelican-data/.env /pelican-data/database
echo "Starting Supervisord"
exec "$@" exec "$@"

View File

@ -25,15 +25,15 @@ autostart=true
autorestart=true autorestart=true
[program:queue-worker] [program:queue-worker]
command=/usr/local/bin/php /app/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3 command=/usr/local/bin/php /var/www/html/artisan queue:work --queue=high,standard,low --sleep=3 --tries=3
user=nginx user=www-data
autostart=true autostart=true
autorestart=true autorestart=true
[program:nginx] [program:caddy]
command=/usr/sbin/nginx -g 'daemon off;' command=caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
autostart=true autostart=%(ENV_SUPERVISORD_CADDY)s
autorestart=true autorestart=%(ENV_SUPERVISORD_CADDY)s
priority=10 priority=10
stdout_events_enabled=true stdout_events_enabled=true
stderr_events_enabled=true stderr_events_enabled=true

View File

@ -42,8 +42,9 @@ RUN chmod -R 755 /var/www/html/storage \
# Add scheduler to cron # Add scheduler to cron
RUN echo "* * * * * php /var/www/html/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data - RUN echo "* * * * * php /var/www/html/artisan schedule:run >> /dev/null 2>&1" | crontab -u www-data -
# Create new service for the queue ## supervisord config and log dir
RUN php artisan p:environment:queue-service --service-name=pelican-queue --user=www-data --group=www-data --overwrite RUN cp .github/docker/supervisord.conf /etc/supervisord.conf && \
mkdir /var/log/supervisord/
HEALTHCHECK --interval=5m --timeout=10s --start-period=5s --retries=3 \ HEALTHCHECK --interval=5m --timeout=10s --start-period=5s --retries=3 \
CMD curl -f http://localhost/up || exit 1 CMD curl -f http://localhost/up || exit 1
@ -53,8 +54,5 @@ EXPOSE 443
VOLUME /pelican-data VOLUME /pelican-data
# Start PHP-FPM
CMD ["sh", "-c", "php-fpm"]
ENTRYPOINT [ "/bin/ash", ".github/docker/entrypoint.sh" ] ENTRYPOINT [ "/bin/ash", ".github/docker/entrypoint.sh" ]
# CMD [ "supervisord", "-n", "-c", "/etc/supervisord.conf" ] CMD [ "supervisord", "-n", "-c", "/etc/supervisord.conf" ]