Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

RuntimeWarning:Você está executando o trabalhador com privilégios de superusuário:isso não é absolutamente recomendado


Dê uma olhada na documentação. É um aviso, porém, não um erro (veja o código). A execução do aipo na raiz é um erro apenas quando você permite a serialização de picles que não está habilitada por padrão (veja aqui).

No entanto, ainda é a melhor prática executar o Celery com privilégios mais baixos. No Docker (com imagem baseada no Debian), escolho executar o Celery em nobody :nogroup . Eu uso este 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"]

onde celery.sh parece o seguinte:
#!/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