▲ | bityard 4 days ago | ||||||||||||||||||||||
Yes, application containers should stick to the Unix philosophy of, "do one thing and do it well." But if the thing in your docker container forks for _any_ reason, you should have a real init on PID 1. | |||||||||||||||||||||||
▲ | benreesman 3 days ago | parent | next [-] | ||||||||||||||||||||||
There's nothing inherently wrong with containers in the abstract: virtualization is a critical tool in computer science (some might it's difficult to define computer science without a virtual machine). There's not even anything wrong with this "less than a new kernel, more than a new libc" neighborhood. The broken, ugly, malignant thing is this one godawful implementation Docker and its attic-dwelling Quasimodo cousin docker-compose.yml It's trivial to slot namespaces (or jails if you also like the finer things BSD) into a sane init system, process id regime, network interface regime: its an exercise in choosing good defaults for all the unshare-adjacent parameters. But a whole generation of SWEs memorized docker jank instead of Unix, and so now people are emotionally invested in it. You run compose to run docker to get Alpine and a node built on musl. You can just link node to musl. And if you want a chroot or a new tuntap scope? man unshare. | |||||||||||||||||||||||
▲ | RulerOf 3 days ago | parent | prev | next [-] | ||||||||||||||||||||||
> you should have a real init on PID 1 Got a handy list of those? My colleagues use supervisord and it kinda bugs me. Would love to know if it makes the list. | |||||||||||||||||||||||
| |||||||||||||||||||||||
▲ | pas 4 days ago | parent | prev [-] | ||||||||||||||||||||||
is there any issue besides the potential zombies? also, why can't the real pid1 do it? it sees all the processes after all. | |||||||||||||||||||||||
|