Public Repository

Last pushed: 8 months ago
Short Description
A minimal Alpine base image with a tiny init for correct signal handling and zombie process reaping.
Full Description

Supported tags and respective Dockerfile links

Alpine Linux

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.

dumb-init

From dumb-init's README:

dumb-init is 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.

With 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.

Credits

Copyright and License

© 2017 Cameron Malek. All rights reserved. Licensed under The MIT License.

Docker Pull Command
Owner
cameronmalek