У меня есть скрипт node.js, работающий в контейнере Docker узлов, который в настоящее время выводит свои выходные данные в файл журнала внутри контейнера и STDOUT.Многие официальные образы докера позволяют вам запускать docker logs container
, чтобы увидеть ошибки всего, что выполняется в этом контейнере.
Я вижу много ссылок на то, что Docker просто фиксирует вывод STD, и это то, что видит docker logs container
, но яне могу найти документацию о том, как правильно настроить это из скрипта, работающего в контейнере.
В настоящее время мой Dockerfile настроен для разработки с последней строкой
ENTRYPOINT [ "npm", "run", "watch"]
, которая просматривает мои файлы на предмет изменений для запуска скрипта сборки в контейнере.Таким образом, для разработки я в настоящее время использую docker exec -it container /bin/sh
и выполняю скрипт вручную.
Когда я использую docker logs container
, я вижу ошибки из цепочки сборки npm, но ничего из моего скрипта при запуске вручную изнутриКонтейнер.
Мой сценарий использует
process.stdout.write(data)
process.stderr.write(data)
Прежде чем я полностью переделываю свой Dockerfile для своего сценария, правильно ли я считаю, что docker logs
перенаправляет STDOUT и STDERR из процесса сPID 1 , но нет ли других процессов, работающих на разных PID?
И если я хочу захватить вывод моего скрипта, используя docker logs
, это просто случай изменения ENTRYPOINT
, чтобы он запускал мой скрипт напрямую?
ENTRYPOINT [ "node", "myscript" ]