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
20 lines
521 B
Python
20 lines
521 B
Python
#!/usr/bin/env python
|
|
# A supervisor event listener which terminates supervisord if any of its child
|
|
# processes enter the FATAL state.
|
|
# https://stackoverflow.com/a/37527488/119527
|
|
import os
|
|
import signal
|
|
|
|
from supervisor import childutils
|
|
|
|
def main():
|
|
while True:
|
|
headers, payload = childutils.listener.wait()
|
|
childutils.listener.ok()
|
|
if headers['eventname'] != 'PROCESS_STATE_FATAL':
|
|
continue
|
|
os.kill(os.getppid(), signal.SIGTERM)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|