sql >> データベース >  >> NoSQL >> Redis

RuntimeWarning:スーパーユーザー権限でワーカーを実行しています:これは絶対にお勧めしません

    ドキュメントをご覧ください。ただし、これは警告であり、エラーではありません(コードを参照)。ルートで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
    



    1. MongoDBレプリカセットをスタンドアロンサーバーに変換する方法

    2. パターンごとにキーを削除または取得する方法をRedisStackExchange

    3. 既存のリレーショナルデータベースをKey-Valueストアに変換するにはどうすればよいですか?

    4. MongoDB findOneAndUpdate()