Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

cameronmalek/base

A minimal Alpine base image with a tiny init for correct signal handling and zombie process reaping.

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

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

You can’t perform that action at this time.