sql >> Databáze >  >> NoSQL >> Redis

RuntimeWarning:Spouštíte worker s oprávněními superuživatele:toto se absolutně nedoporučuje

Podívejte se do dokumentace. Je to varování, nikoli chyba (viz kód). Spuštění celeru pod rootem je chyba pouze v případě, že povolíte serializaci okurků, která není ve výchozím nastavení povolena (viz zde).

Stále je však nejlepším postupem spouštět Celery s nižšími oprávněními. V Dockeru (s obrázkem založeným na Debianu) jsem se rozhodl spouštět Celery pod nobody :nogroup . Používám tento 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"]

kde celery.sh vypadá následovně:

#!/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



  1. Dostávám duplicitní zprávy v mé seskupené aplikaci node.js/socket.io/redis pub/sub

  2. Upgrade na ClusterControl Enterprise Edition

  3. Mongodb Zvýší hodnotu uvnitř vnořeného pole

  4. MongoDB:Najděte vnořený dokument v Array Matching Parameters