Tag et kig i dokumentationen. Det er dog en advarsel, ikke en fejl (se koden). At køre selleri under root er kun en fejl, når du tillader pickleserialisering, som ikke er aktiveret som standard (se her).
Det er dog stadig den bedste praksis at køre Selleri med lavere privilegier. I Docker (med Debian-baseret image) vælger jeg at køre Celery under nobody
:nogroup
. Jeg bruger denne Dockerfile
:
FROM python:3.6
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
WORKDIR /srv/celery
COPY ./app app
COPY ./requirements.txt /tmp/requirements.txt
COPY ./celery.sh celery.sh
RUN pip install --no-cache-dir \
-r /tmp/requirements.txt
VOLUME ["/var/log/celery", "/var/run/celery"]
CMD ["./celery.sh"]
hvor celery.sh
ser ud som følger:
#!/usr/bin/env bash
mkdir -p /var/run/celery /var/log/celery
chown -R nobody:nogroup /var/run/celery /var/log/celery
exec celery --app=app worker \
--loglevel=INFO --logfile=/var/log/celery/worker-example.log \
--statedb=/var/run/celery/[email protected]%h.state \
[email protected]%h \
--queues=celery.example -O fair \
--uid=nobody --gid=nogroup