Docker не ловит вывод php-fpm с помощью symfony и monolog

Я использую образ richarvey/nginx-php-fpm:latest (1.5.2), и я запустил контейнер, основанный на этом образе, и выполнил /bin/bash внутри.

Там я:

  • установили композитор
  • создал новый проект symfony4, используя composer create-project symfony/website-skeleton my-project
  • отредактировали my-project/config/packages/dev/monolog.yaml, чтобы установить:

    monolog:
        handlers:
            main:                   
                type: stream  
                path: 'php://stderr' 
                level: debug        
                channels: ["!event"]
    
  • получил IP-адрес моего образа докера с помощью docker inspect

  • и выгружать мои журналы контейнера с помощью docker logs -f <my container>

Когда я загружаю http://<my container ip>/my-project/public, я не вижу журналов отладки Symfony в выходных данных журналов контейнера.

Примечание: я вижу журналы nginx.

Когда я загружаю http://<my container ip>/my-project/public, я не вижу журналов отладки Symfony в выходных данных журналов контейнера. Почему вы ожидаете, что будут добавлены логи? Похоже, вы пытаетесь увидеть файлы на public, и файлы, вероятно, обслуживаются вашим сервером, без Symfony.
A.L 24.06.2018 15:47

@ A.L: Я не понимаю вашего комментария. Когда вы только что выполнили новую установку SF, у вас есть демонстрационный маршрут, обслуживаемый на /, и когда вы обращаетесь к нему, у вас есть вывод журнала отладки о том, какой маршрут SF соответствует и так далее ... Примечание: это установка SF4, поэтому В папке public есть файл index.php, а не только активы.

jobou 24.06.2018 20:00

Извините, я забыл, что public отличается на Symfony4. Не могли бы вы поделиться командами, которые вы используете для запуска контейнера? Хочу попробовать на себе.

A.L 24.06.2018 20:13

Я использую простую команду запуска докера. Примерно так: команда docker run -d --name testfpm richarvey/nginx-php-fpm:latest. Затем я выполняю шаги, описанные в моем билете, внутри контейнера `` docker exec -it testfpm - / bin / bash`

jobou 25.06.2018 12:25

Как у вас возникла идея использовать path: 'php://stderr'? Не могли бы вы поделиться ссылкой, объясняющей это использование? Может, в этой конфигурации чего-то не хватает.

A.L 26.06.2018 09:56

Я следил за этим: stackoverflow.com/questions/38499825/… и множество других проблем с github и другие вопросы SO.

jobou 26.06.2018 10:05

Вы тоже настроили уровень журнала супервизора?

A.L 26.06.2018 10:11

Нет, я не менял настройки изображения для этого инструмента. Я прикрепил mysql к контейнеру, остановил fpm в супервизоре и запустил ту же команду в консоли, и я вижу журналы для стандартного вывода или вывода ошибок. Однако супервизор, похоже, не улавливает его и не перенаправляет на свой собственный вывод, чтобы они были видны докеру.

jobou 26.06.2018 10:24
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
8
1 165
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Один из моих коллег нашел решение, и специалист по сопровождению образа докера реализовал его:

https://gitlab.com/ric_harvey/nginx-php-fpm/commit/51bbf4e04f61873dfeae69e943fcdf0a900f2589#8ad4b94617a62f898119a66a878f8035b8605d13

Поскольку php-fpm запускается в режиме без демонстрации, вам необходимо установить флаг --force-stderr, который «Принудительно выводит на stderr в nodaemonize, даже если stderr не является TTY».

https://www.gsp.com/cgi-bin/man.cgi?section=8&topic=php-fpm

Другие вопросы по теме