Skip to content

My namespace for Kubler to build my ricer Docker images ๐Ÿš— ๐Ÿณ

License

Notifications You must be signed in to change notification settings

berney/kubler-images

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Kubler Build

kubler-images

My namespace for kubler to build my ricer images.

  • This is my source/templates that build my Docker images.
  • Slim distroless Docker images based on Gentoo's build system.
  • Generally opinionated, these are my images after all.

https://github.com/berney/kubler-images Maintainer: Berne Campbell [email protected]

What is kubler

kubler is an excellent build framework to produce minimal Docker images, and minimal root file systems based on Gentoo. It's primarily intended for maintaining an organization's Docker/LXC base image stack(s), but can probably fairly easy be (ab)used for other use cases involving a custom root fs, cross compiling comes to mind.

Quick Start

  1. You need kubler: git clone https://github.com/edannenberg/kubler.git Rest assumes kubler added to your PATH

  2. Add my namespace:

    git clone [email protected]:berney/kubler-images.git berney
    cd berney
    
  3. Build my namespace: kubler build berney

Goals

I strive to have high quality optimal images that have at least one but hopefully all of the following attributes:

  • Follow Docker best practices
    • This is a nice [docker-best-practices][summary] of them.
  • Minimal
    • No bloat
  • Performant
  • Secure
    • Principal of least privilege
    • A bunch of the Docker best practices are security related
  • Correct
    • They should actually work.
    • Automated Testing
  • Clean beautiful code
  • Documented

Reasons Why / Why Not

Why not just use Docker Hub

Most images are sub-optimal IMO

  • Bloaty
  • Insecure
  • Don't follow Docker's best practices
  • Source might not be available
  • Hard to understand/reason

Why not just use Alpine

Alpine is a great base for images. This is to ricer things, go that one step further in minimalism, security hardening, optimisation, or have software or a feature or setup that's not available out of the box in alpine with apk. With kubler we get the power and flexibility of Gentoo plus the separation of build-time dependencies and run time dependencies.

Todo / Wishlist

  • Automated testing of resultant images to ensure they are functioning correctly.
    • If you know of good tools or have good ideas in this regard please let me know.
  • Automated scanning of resultant images for security issues.

Git Branching Model

  • The master branch should always be stable, production-ready, building working images.
  • New images that are WIP will be in feature branches.
    • Once they are working they'll get merged into master

Contributions

PRs are welcome, if I like your ideas I'll use them. See my wishlist above. Keep in mind this is my opinionated stake on how Docker images should be, and our goals might differ.