Сельдерей не записывает логи в файл в Docker - PullRequest
0 голосов
/ 14 февраля 2020

Celery не записывает какие-либо файлы журнала при запуске в контейнере Docker. Эта же команда отлично работает при запуске вне Docker.

В моем файле docker -compose.yml:

  celery_main:
    build:
      context: .
      dockerfile: Dockerfile
      command: bash -c "sleep 20 && celery -A my_project worker -n 1 -Q celery -c 10 -l info -E --logfile=celery_main.log"
    links:
      - db
      - redis
      - web
    depends_on:
      - db
      - redis

Я использую Celery как обычный пользователь. Когда я захожу в рабочий каталог внутри контейнера с помощью bash, я могу создавать файлы, поэтому я не понимаю, что мешает Celery создавать файлы журналов? Как обычно, я распечатываю логи в STDOUT.

1 Ответ

1 голос
/ 03 марта 2020

Файл журнала создается внутри контейнера в соответствии с вашим файлом compose. Следует рассмотреть возможность подключения тома, чтобы сделать его доступным в хост-системе.

В качестве альтернативы все контейнеры docker генерируют файлы журналов в /var/lib/docker/containers//-json.log*1003. *

Вы также можете напрямую получать свои журналы оттуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...