A minimal Alpine base image with a tiny init for correct signal handling and zombie process reaping.
Supported tags and respective
Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox. cameronmalek/base provides an Alpine Linux image that comes with Yelp's dumb-init process manager. If you don't use a process manager things can get a bit messy.
From dumb-init's README:
dumb-initis a simple process supervisor and init system designed to run as PID 1 inside minimal container environments (such as Docker). It is a deployed as a small, statically-linked binary written in C.
dumb-init, you simply have to prefix your command with
dumb-init, but this image puts it in the
ENTRYPOINT so you don't even have to do that.
dumb-init acts as PID 1 and immediately spawns your command as a child process, taking care to properly handle and forward signals as they are received.
Why a supervisor process? Firstly because it solves the PID 1 Zombie Problem, but more importantly because many containers need to run multiple processes. Running multiple applications in a single container is not The Docker Way™, however running multiple processes is often required.
Omitting an init system often leads to incorrect handling of processes and signals, and can result in problems such as containers which can't be gracefully stopped, or leaking containers which should have been destroyed.
Copyright and License
© 2019 Cameron Malek. All rights reserved. Licensed under The MIT License.