Lihat di dokumentasi. Namun, ini adalah peringatan, bukan kesalahan (lihat kodenya). Menjalankan Seledri di bawah root adalah kesalahan hanya jika Anda mengizinkan serialisasi acar yang tidak diaktifkan secara default (lihat di sini).
Namun, ini masih merupakan praktik terbaik untuk menjalankan Seledri dengan hak istimewa yang lebih rendah. Di Docker (dengan gambar berbasis Debian), saya memilih untuk menjalankan Seledri di bawah nobody
:nogroup
. Saya menggunakan Dockerfile
ini :
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"]
di mana celery.sh
terlihat sebagai berikut:
#!/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