From d1a71fb7bee5e9b26f9af53f07d490b415159aac Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Sun, 12 Feb 2017 16:13:15 -0500 Subject: [PATCH] add supervisor option to development environment --- .gitignore | 1 + Makefile | 6 ++ tools/docker-compose/Dockerfile | 1 + tools/docker-compose/start_development.sh | 8 ++- tools/docker-compose/supervisor.conf | 73 +++++++++++++++++++++++ 5 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 tools/docker-compose/supervisor.conf diff --git a/.gitignore b/.gitignore index ca9dd12298..d5e58e8c87 100644 --- a/.gitignore +++ b/.gitignore @@ -112,3 +112,4 @@ local/ awx/lib/.deps_built awx/lib/site-packages venv/* +use_dev_supervisor.txt diff --git a/Makefile b/Makefile index 6d55edc698..836f96da9c 100644 --- a/Makefile +++ b/Makefile @@ -378,6 +378,12 @@ server: server_noattach servercc: server_noattach tmux -2 -CC attach-session -t tower +supervisor: + @if [ "$(VENV_BASE)" ]; then \ + . $(VENV_BASE)/tower/bin/activate; \ + fi; \ + supervisord --configuration /supervisor.conf --pidfile=/tmp/supervisor_pid + # Alternate approach to tmux to run all development tasks specified in # Procfile. https://youtu.be/OPMgaibszjk honcho: diff --git a/tools/docker-compose/Dockerfile b/tools/docker-compose/Dockerfile index 19b699ab36..4a78226a3a 100644 --- a/tools/docker-compose/Dockerfile +++ b/tools/docker-compose/Dockerfile @@ -19,6 +19,7 @@ RUN mkdir -p /etc/tower RUN mkdir -p /data/db ADD tools/docker-compose/license /etc/tower/license RUN pip2 install honcho +RUN pip2 install supervisor RUN curl -LO https://github.com/Yelp/dumb-init/releases/download/v1.1.3/dumb-init_1.1.3_amd64 && chmod +x ./dumb-init_1.1.3_amd64 && mv ./dumb-init_1.1.3_amd64 /usr/bin/dumb-init ADD tools/docker-compose/ansible-tower.egg-link /tmp/ansible-tower.egg-link ADD tools/docker-compose/tower-manage /usr/local/bin/tower-manage diff --git a/tools/docker-compose/start_development.sh b/tools/docker-compose/start_development.sh index ee94888431..9814a9344c 100755 --- a/tools/docker-compose/start_development.sh +++ b/tools/docker-compose/start_development.sh @@ -25,6 +25,7 @@ fi cp -nR /tmp/ansible_tower.egg-info /tower_devel/ || true cp /tmp/ansible-tower.egg-link /venv/tower/lib/python2.7/site-packages/ansible-tower.egg-link +yes | cp -rf /tower_devel/tools/docker-compose/supervisor.conf /supervisor.conf # Tower bootstrapping make version_file @@ -35,4 +36,9 @@ mkdir -p /tower_devel/awx/public/static mkdir -p /tower_devel/awx/ui/static # Start the service -make honcho + +if [ -f "/tower_devel/tools/docker-compose/use_dev_supervisor.txt" ]; then + make supervisor +else + make honcho +fi diff --git a/tools/docker-compose/supervisor.conf b/tools/docker-compose/supervisor.conf new file mode 100644 index 0000000000..787720fec3 --- /dev/null +++ b/tools/docker-compose/supervisor.conf @@ -0,0 +1,73 @@ +[supervisord] +umask = 022 +minfds = 4096 +nodaemon=true + +[program:celeryd] +command = make celeryd +autostart = true +autorestart = true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:receiver] +command = make receiver +autostart = true +autorestart = true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:runworker] +command = make runworker +autostart = true +autorestart = true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:uwsgi] +command = make uwsgi +autostart = true +autorestart = true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:daphne] +command = make daphne +autostart = true +autorestart = true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:factcacher] +command = make factcacher +autostart = true +autorestart = true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:nginx] +command = make nginx +autostart = true +autorestart = true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[program:flower] +command = make flower +autostart = true +autorestart = true +redirect_stderr=true +stdout_logfile=/dev/fd/1 +stdout_logfile_maxbytes=0 + +[group:tower-processes] +programs=celeryd,receiver,runworker,uwsgi,daphne,factcacher,nginx,flower +priority=5 +