mirror of
git://git.yoctoproject.org/layerindex-web.git
synced 2025-07-19 12:49:01 +02:00

This patch adds asynchronous task execution using a Celery backend and RabbitMQ task queue, so that the layer submission process to proceed even in the event that sending the notification email fails, and establishing an asynchronous execution mechanism that we can use in the future e.g. for triggering parse operations from the web UI. This pertains to bug 11197: https://bugzilla.yoctoproject.org/show_bug.cgi?id=11197 It updates the README to reflect the installation and configuration of a basic RabbitMQ setup, adds a 'tasks.py' file to contain task definitions, updates the 'edit_layer_view' function to send emails to administrators about new and updated layers asynchronously, modifies the 'settings.py' to include a default configuration for a RabbitMQ connection, and updates the Dockerfile to start a Celery worker alongside the Gunicorn daemon. Fixes [YOCTO #11197]. Signed-off-by: Diana Thayer <garbados@gmail.com> Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
41 lines
1.3 KiB
Docker
41 lines
1.3 KiB
Docker
FROM buildpack-deps:latest
|
|
MAINTAINER Michael Halstead <mhalstead@linuxfoundation.org>
|
|
|
|
EXPOSE 80
|
|
ENV PYTHONUNBUFFERED 1
|
|
## Uncomment to set proxy ENVVARS within container
|
|
#ENV http_proxy http://your.proxy.server:port
|
|
#ENV https_proxy https://your.proxy.server:port
|
|
|
|
RUN apt-get update
|
|
RUN apt-get install -y --no-install-recommends \
|
|
python-pip \
|
|
python-mysqldb \
|
|
python-dev \
|
|
python-imaging \
|
|
rabbitmq-server \
|
|
netcat-openbsd \
|
|
vim \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
RUN pip install --upgrade pip
|
|
RUN pip install gunicorn
|
|
RUN pip install setuptools
|
|
CMD mkdir /opt/workdir
|
|
ADD . /opt/layerindex
|
|
RUN pip install -r /opt/layerindex/requirements.txt
|
|
ADD settings.py /opt/layerindex/settings.py
|
|
ADD docker/updatelayers.sh /opt/updatelayers.sh
|
|
ADD docker/migrate.sh /opt/migrate.sh
|
|
|
|
## Uncomment to add a .gitconfig file within container
|
|
#ADD docker/.gitconfig /root/.gitconfig
|
|
## Uncomment to add a proxy script within container, if you choose to
|
|
## do so, you will also have to edit .gitconfig appropriately
|
|
#ADD docker/git-proxy /opt/bin/git-proxy
|
|
|
|
# Start Gunicorn
|
|
CMD ["/usr/local/bin/gunicorn", "wsgi:application", "--workers=4", "--bind=:5000", "--log-level=debug", "--chdir=/opt/layerindex"]
|
|
|
|
# Start Celery
|
|
CMD ["/usr/local/bin/celery", "-A", "layerindex.tasks", "worker", "--loglevel=info", "--workdir=/opt/layerindex"]
|