sql >> Database >  >> NoSQL >> Redis

RuntimeWarning:U gebruikt de worker met superuser-privileges:dit wordt absoluut niet aanbevolen

Kijk eens in de documentatie. Het is echter een waarschuwing, geen fout (zie de code). Het uitvoeren van Celery onder root is alleen een fout wanneer u augurk-serialisatie toestaat die standaard niet is ingeschakeld (zie hier).

Het is echter nog steeds de beste gewoonte om Celery met lagere privileges uit te voeren. In Docker (met op Debian gebaseerde afbeelding) kies ik ervoor om Celery uit te voeren onder nobody :nogroup . Ik gebruik dit 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"]

waar celery.sh ziet er als volgt uit:

#!/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. Spring Boot verbindt Mysql en MongoDb

  2. Basis HORLOGE doen met StackExchange.Redis

  3. Logstash Web UI start niet

  4. Hoe beperkingen toepassen in MongoDB?