Zajrzyj do dokumentacji. Jest to jednak ostrzeżenie, a nie błąd (patrz kod). Uruchamianie selera jako root jest błędem tylko wtedy, gdy zezwalasz na serializację pikle, która nie jest domyślnie włączona (patrz tutaj).
Jednak nadal najlepszą praktyką jest uruchamianie selera z niższymi uprawnieniami. W Dockerze (z obrazem opartym na Debianie) wybieram uruchomienie Celery pod nobody
:nogroup
. Używam tego 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"]
gdzie celery.sh
wygląda następująco:
#!/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