A small image based on Debian designed for use in containers
Go to file
James Westby 0930a29d6f Push to dockerhub on successful builds.
If master builds successfully then push the results
to dockerhub.

We assume that the dockerhub username and password will
be in the environment. This will use travis env vars so
that the secrets aren't available to forks.

The on: branch: master means that other branches wouldn't
push to dockerhub.
2016-09-09 14:56:13 +01:00
debootstrap Use custom debootstrap scripts. 2016-09-02 17:32:07 +01:00
namibase First go at minideb. 2016-09-02 14:48:09 +01:00
.gitignore First go at minideb. 2016-09-02 14:48:09 +01:00
.travis.yml Push to dockerhub on successful builds. 2016-09-09 14:56:13 +01:00
README.md Add some more notes. 2016-09-02 17:06:05 +01:00
buildall Stop building namibase. 2016-09-08 12:18:23 +01:00
mkimage Don't use --force-yes. 2016-09-08 12:38:14 +01:00
pushall Push to dockerhub on successful builds. 2016-09-09 14:56:13 +01:00
test Set the sources.list and update from security. 2016-09-08 12:13:51 +01:00

README.md

minideb

A small container image with apt available.

We want to have the smallest container image possible with apt available. Small images are great, but the power of apt is hard to live without.

These images are Debian-based, but they are not Debian, as they remove some Essential packages that are not needed in most containers (e.g. init). This does mean that while apt is available, with the whole Debian archive, some packages will not work correctly without also installing a missing Essential package.

These images also include an install_packages command that you can use instead of apt. This does two things:

  1. Install the named packages, skipping prompts etc.
  2. Clean up the apt metadata afterwards to keep the image small.

Building

  • Install debootstrap and debian-archive-keyring.
  • sudo ./buildall

To build an individual image:

  • sudo ./mkimage jessie.tar jessie

To test the resulting image:

  • docker import -t minideb:jessie jessie.tar
  • ./test minideb:jessie

Nami

Nami from Bitnami allows you to install Bitnami-maintained packages.

The namibase directory contains Dockerfiles for building images containing nami based on the minideb images. They will also be build by the buildall script. You will first have to download the nami-linux-x64.tar.gz tarball in to the namibase directory, but unfortunately there is no public source for those tarballs currently.

TODO

  • Look at whether the process produces the same bits given the same inputs
    • It does not. /etc/shadow and /etc/group change, as well as /var/cache/ldconfig/aux-cache.
  • Can we use a custom debootstrap script to avoid removing packages?
    • Yes, and allows to define a package set to include, rather than a list of packages to remove.
    • Requires to install some packages (e.g. mount) for running the process, that we would still want to remove afterwards.
  • install_packages to also run the docs/locales/etc. cleanups