Commit a24ec741 by Clinton Blackburn

Starting supervisor+nginx when running Docker

In addition to validating our supervisor and nginx configurations, this ensures we can serve static files locally as we would in production.
parent 70890cac
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
credentials_gunicorn_host: 0.0.0.0 credentials_gunicorn_host: 0.0.0.0
CREDENTIALS_MYSQL: 'db' CREDENTIALS_MYSQL: 'db'
CREDENTIALS_DJANGO_SETTINGS_MODULE: 'credentials.settings.devstack' CREDENTIALS_DJANGO_SETTINGS_MODULE: 'credentials.settings.devstack'
CREDENTIALS_GUNICORN_EXTRA: '--reload'
CREDENTIALS_MYSQL_MATCHER: '%' CREDENTIALS_MYSQL_MATCHER: '%'
CREDENTIALS_MYSQL_HOST: 'db' CREDENTIALS_MYSQL_HOST: 'db'
CREDENTIALS_MYSQL_PASSWORD: 'password' CREDENTIALS_MYSQL_PASSWORD: 'password'
......
...@@ -3,5 +3,6 @@ discovery_gunicorn_host: 0.0.0.0 ...@@ -3,5 +3,6 @@ discovery_gunicorn_host: 0.0.0.0
DISCOVERY_MYSQL: 'db' DISCOVERY_MYSQL: 'db'
DISCOVERY_DJANGO_SETTINGS_MODULE: 'course_discovery.settings.devstack' DISCOVERY_DJANGO_SETTINGS_MODULE: 'course_discovery.settings.devstack'
DISCOVERY_ELASTICSEARCH_HOST: 'es' DISCOVERY_ELASTICSEARCH_HOST: 'es'
DISCOVERY_GUNICORN_EXTRA: '--reload'
COMMON_MYSQL_MIGRATE_USER: '{{ DISCOVERY_MYSQL_USER }}' COMMON_MYSQL_MIGRATE_USER: '{{ DISCOVERY_MYSQL_USER }}'
COMMON_MYSQL_MIGRATE_PASS: '{{ DISCOVERY_MYSQL_PASSWORD }}' COMMON_MYSQL_MIGRATE_PASS: '{{ DISCOVERY_MYSQL_PASSWORD }}'
...@@ -10,17 +10,18 @@ case $COMMAND in ...@@ -10,17 +10,18 @@ case $COMMAND in
{{ '{%' }} set {{ role_name }}_venv_bin = {{ role_name }}_home + "/venvs/" + {{ role_name }}_service_name + "/bin" %} {{ '{%' }} set {{ role_name }}_venv_bin = {{ role_name }}_home + "/venvs/" + {{ role_name }}_service_name + "/bin" %}
{{ '{%' }} set executable = {{ role_name }}_venv_bin + '/gunicorn' %} {{ '{%' }} set executable = {{ role_name }}_venv_bin + '/gunicorn' %}
{{ '{{' }} supervisor_venv_bin }}/supervisord --configuration {{ '{%' }}supervisor_cfg }}
cd /edx/app/edx_ansible/edx_ansible/docker/plays cd /edx/app/edx_ansible/edx_ansible/docker/plays
sudo /edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook {{ role_name }}.yml -c local -i '127.0.0.1,' \ /edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook {{ role_name }}.yml -c local -i '127.0.0.1,' \
-t 'install:app-requirements,assets:gather,devstack,migrate' \ -t 'install:app-requirements,assets:gather,devstack,migrate,manage:start' \
--extra-vars="migrate_db=yes" \ --extra-vars="migrate_db=yes" \
--extra-vars="@/ansible_overrides.yml" --extra-vars="@/ansible_overrides.yml"
{{ '{{' }} executable }} -c {{ '{{' }} {{ role_name }}_home }}/{{ role_name }}_gunicorn.py \ # Docker requires an active foreground task. Tail the logs to appease Docker and
{{ '{{' }} {{ role_name|upper }}_GUNICORN_EXTRA }} \ # provide useful output for development.
--reload \ cd {{ '{{' }} supervisor_log_dir }}
{{ role_name }}.wsgi:application tail -f {{ '{{' }} {{ role_name }}_service_name }}-stderr.log -f {{ '{{' }} {{ role_name }}_service_name }}-stdout.log
;; ;;
open) open)
cd {{ '{{' }} {{ role_name }}_code_dir }}/ cd {{ '{{' }} {{ role_name }}_code_dir }}/
......
...@@ -8,18 +8,19 @@ COMMAND=$1 ...@@ -8,18 +8,19 @@ COMMAND=$1
case $COMMAND in case $COMMAND in
start) start)
{% set credentials_venv_bin = credentials_home + "/venvs/" + credentials_service_name + "/bin" %} {% set credentials_venv_bin = credentials_home + "/venvs/" + credentials_service_name + "/bin" %}
{% set executable = credentials_venv_bin + '/gunicorn' %}
{{ supervisor_venv_bin }}/supervisord --configuration {{ supervisor_cfg }}
cd /edx/app/edx_ansible/edx_ansible/docker/plays cd /edx/app/edx_ansible/edx_ansible/docker/plays
sudo /edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook credentials.yml -c local -i '127.0.0.1,' \ /edx/app/edx_ansible/venvs/edx_ansible/bin/ansible-playbook credentials.yml -c local -i '127.0.0.1,' \
-t 'install:app-requirements,assets:gather,devstack,migrate,manage:start' \ -t 'install:app-requirements,assets:gather,devstack,migrate,manage:start' \
--extra-vars="migrate_db=yes" \ --extra-vars="migrate_db=yes" \
--extra-vars="@/ansible_overrides.yml" --extra-vars="@/ansible_overrides.yml"
{{ executable }} -c {{ credentials_home }}/credentials_gunicorn.py \ # Docker requires an active foreground task. Tail the logs to appease Docker and
{{ CREDENTIALS_GUNICORN_EXTRA }} \ # provide useful output for development.
--reload \ cd {{ supervisor_log_dir }}
credentials.wsgi:application tail -f {{ credentials_service_name }}-stderr.log -f {{ credentials_service_name }}-stdout.log
;; ;;
open) open)
......
...@@ -8,20 +8,19 @@ COMMAND=$1 ...@@ -8,20 +8,19 @@ COMMAND=$1
case $COMMAND in case $COMMAND in
start) start)
{% set discovery_venv_bin = discovery_home + "/venvs/" + discovery_service_name + "/bin" %} {% set discovery_venv_bin = discovery_home + "/venvs/" + discovery_service_name + "/bin" %}
{% set executable = discovery_venv_bin + '/gunicorn' %}
cd /edx/app/edx_ansible/edx_ansible/docker/plays {{ supervisor_venv_bin }}/supervisord --configuration {{ supervisor_cfg }}
sudo ansible-playbook discovery.yml -c local -i '127.0.0.1,' \ cd /edx/app/edx_ansible/edx_ansible/docker/plays
-t 'install:app-requirements,assets:gather,devstack,migrate' \ ansible-playbook discovery.yml -c local -i '127.0.0.1,' \
-t 'install:app-requirements,assets:gather,devstack,migrate,manage:start' \
--extra-vars="migrate_db=yes" \ --extra-vars="migrate_db=yes" \
--extra-vars="@/ansible_overrides.yml" --extra-vars="@/ansible_overrides.yml"
{{ executable }} -c {{ discovery_home }}/discovery_gunicorn.py \ # Docker requires an active foreground task. Tail the logs to appease Docker and
{{ DISCOVERY_GUNICORN_EXTRA }} \ # provide useful output for development.
--reload \ cd {{ supervisor_log_dir }}
course_discovery.wsgi:application tail -f {{ discovery_service_name }}-stderr.log -f {{ discovery_service_name }}-stdout.log
;; ;;
open) open)
cd {{ discovery_code_dir }} cd {{ discovery_code_dir }}
......
...@@ -215,7 +215,7 @@ ...@@ -215,7 +215,7 @@
register: start_supervisor register: start_supervisor
tags: tags:
- manage - manage
- manager:start - manage:start
# calling update on supervisor too soon after it # calling update on supervisor too soon after it
# starts will result in an errror. # starts will result in an errror.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment