दस्तावेज़ीकरण में एक नज़र डालें। हालांकि, यह एक चेतावनी है, त्रुटि नहीं (कोड देखें)। अजवाइन को जड़ के नीचे चलाना केवल एक त्रुटि है जब आप अचार क्रमांकन की अनुमति देते हैं जो डिफ़ॉल्ट रूप से सक्षम नहीं है (यहां देखें)।
हालांकि, सेलेरी को कम विशेषाधिकारों के साथ चलाने के लिए यह अभी भी सबसे अच्छा अभ्यास है। डॉकर में (डेबियन आधारित छवि के साथ), मैं सेलेरी को nobody
. के तहत चलाना चुनता हूं :nogroup
. मैं इस 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"]
जहां celery.sh
इस प्रकार दिखता है:
#!/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