Hãy xem trong tài liệu. Tuy nhiên, đó là một cảnh báo, không phải là một lỗi (xem đoạn mã). Chạy Celery dưới gốc chỉ là lỗi khi bạn cho phép tuần tự hóa dưa chua không được bật theo mặc định (xem tại đây).
Tuy nhiên, cách tốt nhất vẫn là chạy Celery với các đặc quyền thấp hơn. Trong Docker (với hình ảnh dựa trên Debian), tôi chọn chạy Celery dưới nobody
:nogroup
. Tôi sử dụng Dockerfile
này :
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"]
ở đâu celery.sh
trông như sau:
#!/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