mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-26 14:09:43 -08:00
e59ec8b27f
* docker: Rename /entrypoint.sh to /startup.sh This script is not configured as the docker image ENTRYPOINT, thus it is misleading to name it so. * docker: Terminate supervisord if a process enters the FATAL state By terminating PID 1, this will also terminate the Docker container. * docker: Use supervisord to start up apache and cron Note that this uses `apache2ctl -DFOREGROUND` rather than manually sourcing /etc/apache2/envvars and running apache2, as recommended at https://advancedweb.hu/2018/07/03/supervisor_docker/. * docker: Add artisan schedule:run to crontab This also switches to executing /var/www/html/artisan directly. * docker: Run artisan schedule:run directly from supervisor This has the following benefits over using cron: - Cron doesn't need to be installed - Docker-provided environment variables are preserved - It's easy and explicit to run as the docker user
28 lines
708 B
Plaintext
28 lines
708 B
Plaintext
[supervisord]
|
|
nodaemon=true
|
|
|
|
[program:apache]
|
|
; https://advancedweb.hu/2018/07/03/supervisor_docker/
|
|
command=apache2ctl -DFOREGROUND
|
|
killasgroup=true
|
|
stopasgroup=true
|
|
stdout_logfile=/dev/stdout
|
|
stdout_logfile_maxbytes=0
|
|
stderr_logfile=/dev/stderr
|
|
stderr_logfile_maxbytes=0
|
|
|
|
[program:run_schedule]
|
|
; Simply run the Laravel command scheduler every minute
|
|
command=/bin/bash -c "while true; do /var/www/html/artisan schedule:run; sleep 1m; done"
|
|
user=docker
|
|
stdout_logfile=/dev/stdout
|
|
stdout_logfile_maxbytes=0
|
|
stderr_logfile=/dev/stderr
|
|
stderr_logfile_maxbytes=0
|
|
|
|
|
|
; https://stackoverflow.com/a/37527488/119527
|
|
[eventlistener:exit_on_any_fatal]
|
|
command=supervisor-exit-event-listener
|
|
events=PROCESS_STATE_FATAL
|