Я запускаю две бинарные службы (каждая написана на C ++) через docker-compose 1.22.0. В docker-compose.yml
нет ничего особенного. Обе службы используют хост-сеть, имеют init: true
, используют user: "0"
и имеют большие тома в хост-контейнере, но в остальном их команды в основном работают только с двоичными файлами. (к сожалению, по причинам, связанным с лицензированием программного обеспечения, я не могу дать гораздо больше информации, но больше ничего не знаю)
В некоторых случаях происходит случайное и непоследовательное поведение (я бы сказал, по крайней мере, в 75% случаев, оно работает нормально), обе службы перестанут печатать на консоль после недоумения, выводя следующее:
first_service_1 | second_service_1 |
first_service_1
окрашен не так, как second_service_1
, и они выглядят идентично другим строкам журнала, за исключением того, что между ними нет новой строки.
После этого ничего не печатается. Службы (которые предоставляют службы в портах) будут по-прежнему отвечать на запросы, но они не будут печатать то, что они должны / что они обычно печатают.
Через некоторое время (неясно, сколько именно), first_service
прекратит работу так:
my-dockerfiles_first_service_1 exited with code 1
Предполагая, что docker-compose не вызывает выхода (в чем я не уверен, потому что он, по-видимому, в основном падает, только когда не удается распечатать), я мог бы отладить это проще. Я не знаю причин, по которым печать никогда не должна завершаться неудачно или когда-либо печататься строка журнала без новой строки в конце.
Может кто-нибудь посоветовать мне, почему docker compose может печатать эту нечетную строку или полностью прекратить печать?
Средой хоста является Ubuntu 16.04 на aarch64 NVidia TX-2 под управлением L4T 28.2. docker-compose был установлен недавно (в течение последних двух недель) через pip. Docker находится на версии 18.06.0-ce.