dumb-init
ko
dumb-init | ko | |
---|---|---|
10 | 28 | |
6,700 | 7,250 | |
0.5% | 1.1% | |
0.0 | 9.1 | |
25 days ago | 9 days ago | |
Python | Go | |
MIT License | Apache License 2.0 |
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.
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
ko
-
Distroless container images with Apko from Chainguard
Apko leverages the APK package format from Alpine and draws inspiration from ko, a fast container image builder for Go applications.
-
What is the most common approach to configure a backend app?
- There're many resources available about containerizing an application, but I suggest you buildpacks or ko, which doesn't require writing a Dockerfile
-
Tool to build Docker images
ko
- how to create container for Kubernetes?
-
Golang Backend in Production
You don't need to write and manage Dockerfiles. Simply just use ko: https://github.com/google/ko (You also don't need Docker Engine)
-
How to containerize your Go app in 10 minutes!
Or don't write a Dockerfile at all, and use ko: https://github.com/google/ko
-
Containerd... Do I use Docker to build the container image? I miss the Docker Shim
Here is link number 1 - Previous text "ko"
-
HOWTO: Generate Go based multiarch images the easy way
It depends on your use case, but have you ever tried google/ko?
-
`COPY --chmod` reduced the size of my container image by 35%
If you're using Go, I recommend https://github.com/google/ko (shameless plug), or for Java, use Jib.
-
`COPY –chmod` reduced the size of my container image by 35%
I would recommend Google Ko if you are packaging Go apps: https://github.com/google/ko
What are some alternatives?
tini - A tiny but valid `init` for containers
kaniko - Build Container Images In Kubernetes
docker-centos7-systemd-unpriv - Dockerfile for CentOS7 with Systemd in unprivileged mode
Pomerium - Pomerium is an identity and context-aware reverse proxy for zero-trust access to web applications and services.
eks-anywhere - Run Amazon EKS on your own infrastructure 🚀
golang-sample-app - Example application with Golang and Docker
systemd - The systemd System and Service Manager
Packer - Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
compiling-containers
Dockerfile-Generator - dfg - Generates dockerfiles based on various input channels.
vault-exfiltrate - proof-of-concept for recovering the master key from a Hashicorp Vault process
distroless - 🥑 Language focused docker images, minus the operating system.