tini
dumb-init
Our great sponsors
tini | dumb-init | |
---|---|---|
26 | 10 | |
9,263 | 6,689 | |
- | 1.2% | |
0.0 | 0.0 | |
about 1 year ago | 19 days ago | |
C | Python | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
tini
- Anakin – Automatically Kill Orphans
-
Freenginx.org
yes busybox httpd or civetweb is even smaller, both around 300kb.
for tini you mean https://github.com/krallin/tini? how large is your final docker image, why not just alpine in that case which is musl+busybox
-
🚨Avoid this when running containerized applications in production
Tini, a useful process manager for containerized apps
-
Should You Be Scared of Unix Signals?
Ah gotcha. I believe it can be baked into images as well, per the entrypoint example in the readme: https://github.com/krallin/tini
Not sure how this will fare IRL in k8s as I haven’t much experience there. It’s still silly that this is the default behavior where you need something like Tini, but I digress.
-
The Tailscale Universal Docker Mod
To be fair, even for running a single process the pitfalls are real. I've been seeing Tini[1] a lot for these situations.
I just read in the README that Tini is included by Docker since 1.13 if using --init flag.
[1] https://github.com/krallin/tini
-
docker run --init flag doesn't seem to work on Mac
The default init process used is the first docker-init executable found in the system path of the Docker daemon process. This docker-init binary, included in the default installation, is backed by tini.
- ส่อง Dockerfile for Go
- Learning by doing: An HTTP API with Rust
-
Silver bullet: selfhostable personal knowledge management system
AFAIK It's for the init process to reparent zombie processes. See TINI
-
How to implement pods that gracefully shutdown
The second easiest (and most common when your entry point is a bash script) is to use a fake init tool like tini
dumb-init
-
Fargate: catching docker stopping
I think you are on the right track in thinking it’s a signal handling issue. You mentioned using some “bash scripts”, have you tried something like dumb-init?
-
"systemd doesn't follow Unix philosophy "
At the other extreme, there's dumb-init - it implements the special pid-1 behaviors and acts as a wrapper around the one script you want to run. It's ideal for containers or virtual machines that don't need user logins or more than one service.
-
What should readiness & liveness probe actually check for?
Oh, and another thing. Many containers launch their main process from a shell script. When this happens, the shell script receives the SIGTERM event, not the application. Your shell script MUST relay SIGTERM events back to the main process, and it doesn’t happen by default. You can use a shell script wrapper, like dumb-init (https://github.com/yelp/dumb-init), as your entry point if you need to use a shell script on container startup.
-
Distro balls
It's a plus because Gentoo fully supports the choice of Systemd or OpenRC. It also has minit, dumb-init, sysvinit, cinit in tree for the more adventurous. No one was calling the AUR bloat, the parent comment just mentions that Gentoo has an equivalent project, GURU.
- How to make containers handle the SIGTERM signal which makes K8s terminate application gracefully?
- Show HN: EnvKey 2.0 – End-To-End Encrypted Environments (now open source)
-
`COPY –chmod` reduced the size of my container image by 35%
, but I prefer to not have to make this assumption and use an init system instead.
[1]: https://github.com/Yelp/dumb-init
-
Systemd by Example
> It has no init system.
Apologies that I can't link directly to the "--init" flag but docker actually does have an init, it's just (err, was?) compiled into the binary: https://docs.docker.com/engine/reference/commandline/run/#op...
My recollection is that it either adopted, or inspired, https://github.com/Yelp/dumb-init#readme which folks used to put into their Dockerfile as the init system back in the day
Folks (ahem, I'm looking at you, eks-anywhere[0]) who bundle systemd into a docker container are gravely misguided, and the ones which do so for the ability to launch sshd alongside the actual container's main process are truly, truly lost
0: https://github.com/aws/eks-anywhere/issues/838#issuecomment-...
-
Question: How to handle events to safely terminate a Node.js inside Docker container
You can use something like dumb-init which is designed to correctly handle signals
- Docker e Nodejs - Dockerizando sua aplicação com boas praticas
What are some alternatives?
systemd - The systemd System and Service Manager
docker-centos7-systemd-unpriv - Dockerfile for CentOS7 with Systemd in unprivileged mode
inotify-tools - inotify-tools is a C library and a set of command-line programs providing a simple interface to inotify.
eks-anywhere - Run Amazon EKS on your own infrastructure 🚀
torsocks - Library to torify application - NOTE: upstream has been moved to https://gitweb.torproject.org/torsocks.git
s6 - The s6 supervision suite.
compiling-containers
dualsensectl - Linux tool for controlling PS5 DualSense controller
ko - Build and deploy Go applications
docker-intro - This is the repo for my talk and blog post about Docker (practical example).
vault-exfiltrate - proof-of-concept for recovering the master key from a Hashicorp Vault process