ドキュメントをご覧ください。ただし、これは警告であり、エラーではありません(コードを参照)。ルートでCeleryを実行すると、デフォルトで有効になっていないピクルスのシリアル化を許可した場合にのみエラーが発生します(ここを参照)。
ただし、Celeryをより低い権限で実行することは依然としてベストプラクティスです。 Docker(Debianベースのイメージを使用)では、nobody
でCeleryを実行することを選択します :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