微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Celery 显示 django 的 runserver 日志而不是 celery 日志

如何解决Celery 显示 django 的 runserver 日志而不是 celery 日志

我有一个 dockerized Django 项目,一切正常,因为 Celery 一直显示 runserver 日志而不是 celery 日志。

这是我的 docker-compose.yml:

<input type="tel" maxlength="10" pattern="\d{10}" />

...这是我的 Dockerfile:

version: "3.8"

services:
    api:
        container_name: api
        restart: always
        build: .
        networks:
            - API_NETWORK
        depends_on:
            - redis
            - database
        ports:
            - "8000:8000"
        env_file:
            - ./.env
        command: bash -c /entrypoint.sh

    database:
        container_name: postgres
        restart: always
        image: postgres:latest
        networks:
            - API_NETWORK
        volumes:
            - pgdata:/var/lib/postgresql/data/
        environment:
            - POSTGRES_HOST_AUTH_METHOD=trust

    redis:
        container_name: redis
        image: redis:latest
        networks:
            - API_NETWORK

    celery:
        container_name: celery
        restart: always
        build: .
        networks:
            - API_NETWORK
        depends_on:
            - api
            - redis
            - database
        env_file:
            - ./.env
        command: celery -A dir_name worker -l debug

    celery-beat:
        container_name: celery-beat
        restart: always
        build: .
        networks:
            - API_NETWORK
        depends_on:
            - api
            - redis
            - database
        env_file:
            - ./.env
        command: celery -A dir_name beat -l debug --scheduler django_celery_beat.schedulers:DatabaseScheduler

volumes:
    pgdata:

networks:
    API_NETWORK:
        name: API_NETWORK
        driver: bridge

问题是我没有在 FROM python:3.9-slim-buster ENV PYTHONUNBUFFERED 1 ENV PYTHONDONTWRITEBYTECODE 1 RUN apt-get update \ && apt-get install -y --no-install-recommends \ build-essential git gcc python3-dev \ && python -m pip install --upgrade pip RUN mkdir /dir_name workdir /dir_name copY . /dir_name RUN pip install -r ./requirements.txt RUN chmod +x ./entrypoint.sh ENTRYPOINT ["sh","./entrypoint.sh"] 容器中获取正确的 Celery 日志,而是不断获取 django 的 celery 命令日志:

runserver

如果我在容器中打开一个 shell 并运行 celery 命令,它工作正常。但为什么它不能从头开始工作?我做错了什么?

解决方法

从您的 Dockerfile 中删除 ENTRYPOINT ["sh","./entrypoint.sh"] 并再次重建您的映像。

我希望能完成这项工作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。