Go to file
Olaf Meeuwissen 7a4e6cdb87 Merge branch 'jessie-archive' into 'master'
Change: Use archive repository for Jessie

See merge request paddy-hack/devuan!1
2020-07-12 11:54:09 +00:00
scripts Address dpkg-divert deprecation warning. Fixes #17 2019-11-04 14:01:42 +09:00
scripts-slim Drop /usr/share/groff/* from the dpkg path-excludes. Fixes #18 2020-03-30 21:07:05 +09:00
.dockerignore Put every suite in its own rootfs. Re #3 2017-10-23 20:44:25 +09:00
.gitignore Put every suite in its own rootfs. Re #3 2017-10-23 20:44:25 +09:00
.gitlab-ci.yml Bump beowulf to `latest`; add chimaera 2020-06-27 18:28:07 +09:00
COPYING Add a verbatim copy of the full license text 2017-08-17 12:34:58 +09:00
README.md Remove devuan/helper variant 2020-06-27 21:20:34 +09:00
bootstrap.sh Fix test for debootstrap suite script 2018-05-23 05:28:45 +09:00
build.sh Put every suite in its own rootfs. Re #3 2017-10-23 20:44:25 +09:00
builder.df Refactored CI setup and image naming 2017-08-19 14:27:34 +09:00
derive.sh Remove devuan/helper variant 2020-06-27 21:20:34 +09:00
migrate.df Change: Use archive repository for Jessie 2020-07-12 04:46:46 +02:00
migrate.sh Align migration image naming with the documentation 2017-10-22 17:55:13 +09:00
repository@devuan.org.asc Fix: Devuan primary GPG key 2020-07-12 04:45:59 +02:00
trim.sh Put every suite in its own rootfs. Re #3 2017-10-23 20:44:25 +09:00

README.md

Devuan Docker Base Images

For reasons outlined in the bottom part of a blog post of mine, I decided to roll my own Devuan Docker base images. This project is the result of that endeavour. Its repository contains all the code used to build several Devuan image variants for a number of supported versions.

TL;DR

You can pull the latest Devuan base image with

docker pull registry.gitlab.com/paddy-hack/devuan

A full list of image variants and supported versions is available via the container registry.

Image Variants

The registry contains the following image variants:

  • devuan contains the result of a minimal debootstrap, minus any packages that were deemed not essential for Devuan.
  • devuan/slim is a devuan sibling that's been trimmed of "flab". It comes without any of the usual documentation bits (but keeps the copyright information!). It assumes that a POSIX/C locale is all you'll ever need in terms of program feedback as well. Package recommendations are pertinently ignored (and actively targeted for auto-removal).
  • devuan/builder derives from the devuan/slim image and adds the "standard" packages needed to build binary packages. It achieves this by installing build-essential.

There is also a devuan/migrated image, used during the build of the above for now (see #5 and below), but that is only made available for reference, reproducability and accountability purposes.

Supported Versions

The intent is to provide versions for all of upstream's published releases that are supported by debootstrap.

  • latest points to the current Devuan release. As of writing that is beowulf. The latest version is a Docker convention and this project thinks it should point to something tried, tested and rock solid rather than to something bleeding edge that might blow up in your face any time.
  • jessie, the first Devuan release, tried, tested, rock solid and aging gracefully now that it has been superseded by
  • ascii, the second Devuan release, tried, tested and rock solid and superseded by
  • beowulf, the current Devuan release, tried, tested, rock solid.
  • chimaera, what will soon(?) become the current Devuan release, but not before it's deemed ready. Think of this as "brick solid".
  • ceres, where all the "Works for me (famous last quote)", bleeding edge kind of thingies enter the heading-for-release cycle. Trying to build anything on top of this is prone to sucking you in. Think of this as "quicksand solid" 😜

The above release or code name based versions point to most recent, successfull build of each image variant. This means that with every new (scheduled) build, these versions point to a different image. If that kind of fluidity or "instability" unnerves you, you may want to use one of the available date-stamped versions instead. These date-stamped versions have a -YYYY-MM-DD tagged onto their release or code name, e.g. ascii-2017-11-03.

Please note that stable, testing and unstable versions are purposely not available to avoid confusion with their Debian counterparts. The Debian notions of stable and the like, do not necessarily correspond to what the Devuan Project considers stable and the like at any given time.

Pulling Images

Given the above, how would you pull the image you need? Let's say you have a need for the (most recently successfully built) ascii version of devuan/slim. All you need to do is

docker pull registry.gitlab.com/paddy-hack/devuan/slim:ascii

Let's say you live life somewhat dangerously and need a 2017-11-03 dated ceres version of the devuan/builder variant. Just run

docker pull registry.gitlab.com/paddy-hack/devuan/builder:ceres-2017-11-03

and you should be ready to go (assuming there is such a dated version to begin with, of course).

In general, you would determine the $variant and the $version you need and then simply

docker pull registry.gitlab.com/paddy-hack/$variant:$version

How did I get there?

I had to start somewhere, so the first step takes a Debian base image and converts that following the Devuan migration instructions. The image is pushed to the registry, mainly for reference purposes, and used to run Devuan's debootstrap. This produces a rootfs that is imported to the Docker cache, pushed, re-tagged and pushed again to the container registry.

BTW, you can pull the migrated image with

docker pull registry.gitlab.com/paddy-hack/devuan/migrated

if so inclined.