====== 2025-07-23 - docker and EOL fuss ====== today i was struggling to understand what was going on with my ~simple application, that was printing some JSONs on the screen. seemingly all good when testing, when i ran it in an actual environment, it turned out that there's something off with new lines formatting. after quite some digging i realized the problem was due to me calling it via ''docker''. to simplify it a bit, let's say all it did was ''echo x'' on the screen, i.e.: $ echo x | hexdump -C 00000000 78 0a |x.| 00000002 but then: $ docker run -it --rm debian:12 echo x | hexdump -C 00000000 78 0d 0a |x..| 00000003 who ordered the ''\r\n'' instead of ''\n''?! to make it harder to spot, it all worked fine when printing on the screen -- it was only causing issues when pipe-ing, e.g. ''docker ... echo x | grep ...'', as EOLs were not interpreted correctly there... after more digging it turned out, that the problem was ''-t'' flag (i.e. enable terminal). after removing it: $ docker run -i --rm debian:12 echo x | hexdump -C 00000000 78 0a |x.| 00000002 my problem went away. up until now i always added ''-t'' every time i needed interactive input (''-i''). today i learned that it's more nuanced...