Document the variants and version available. Fixes #9
Also illustrates how to get the variant and version one needs. [skip ci]
This commit is contained in:
parent
b3b55c14ce
commit
5c2e737e95
112
README.md
112
README.md
|
|
@ -3,27 +3,119 @@
|
||||||
Devuan Docker Base Images
|
Devuan Docker Base Images
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
For reasons outlined in my [Sandwiching Docker Between Devuan][1] blog
|
For reasons outlined in the bottom part of a [blog post][1] of mine, I
|
||||||
post (in the bottom part), I decided to roll my own Devuan base images.
|
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](#image-variants) for a number
|
||||||
|
of [supported versions](#supported-versions).
|
||||||
|
|
||||||
You can pull the latest base image for the current Devuan release with
|
TL;DR
|
||||||
|
-----
|
||||||
|
|
||||||
|
You can pull the latest Devuan base image with
|
||||||
|
|
||||||
``` sh
|
``` sh
|
||||||
docker pull registry.gitlab.com/paddy-hack/devuan
|
docker pull registry.gitlab.com/paddy-hack/devuan
|
||||||
```
|
```
|
||||||
|
|
||||||
Versioned images are available from [the container registry][2] as
|
A full list of image variants and supported versions is available via
|
||||||
well.
|
the [container registry][2].
|
||||||
|
|
||||||
|
Image Variants
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The [registry][2] 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`.
|
||||||
|
- *devuan/helper* extends *devuan/builder* by adding the `d1h` package
|
||||||
|
to the mix.
|
||||||
|
|
||||||
|
There is also a *devuan/migrated* image, used during the build of the
|
||||||
|
above for now (see #5 and [below](#how-did-i-get-there)), but that is
|
||||||
|
only made available for reference, reproducability and accountability
|
||||||
|
purposes.
|
||||||
|
|
||||||
|
Supported Versions
|
||||||
|
------------------
|
||||||
|
|
||||||
|
The intent is to provide versions for all of [upstream][3]'s
|
||||||
|
published [releases][4] that are supported by `debootstrap`.
|
||||||
|
|
||||||
|
- *latest* points to the current Devuan release. As of writing that
|
||||||
|
is *jessie*. 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 current Devuan release, tried, tested and rock solid.
|
||||||
|
- *ascii*, what will become the next Devuan release, mostly tried and
|
||||||
|
mostly tested, not quite rock solid. You may want to think of it as
|
||||||
|
"sand solid" :wink:
|
||||||
|
- *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" :stuck_out_tongue_winking_eye:
|
||||||
|
|
||||||
|
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][3] 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
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
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
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
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
|
||||||
|
|
||||||
|
``` sh
|
||||||
|
docker pull registry.gitlab.com/paddy-hack/$variant:$version
|
||||||
|
```
|
||||||
|
|
||||||
How did I get there?
|
How did I get there?
|
||||||
--------------------
|
====================
|
||||||
|
|
||||||
I had to start somewhere, so the first step takes a Debian base image
|
I had to start somewhere, so the first step takes a Debian base image
|
||||||
and converts that following the Devuan [migration instructions][3].
|
and converts that following the Devuan [migration instructions][5].
|
||||||
The image is pushed to the registry, mainly for reference purposes,
|
The image is pushed to the registry, mainly for reference purposes,
|
||||||
and used to run Devuan's ``debootstrap``. This produces a ``rootfs``
|
and used to run Devuan's ``debootstrap``. This produces a ``rootfs``
|
||||||
that is imported to the Docker cache, pushed, re-tagged and pushed
|
that is imported to the Docker cache, pushed, re-tagged and pushed
|
||||||
again to the [container registry][2].
|
again to the [container registry][4].
|
||||||
|
|
||||||
BTW, you can pull the migrated image with
|
BTW, you can pull the migrated image with
|
||||||
|
|
||||||
|
|
@ -35,4 +127,6 @@ if so inclined.
|
||||||
|
|
||||||
[1]: https://paddy-hack.gitlab.io/posts/sandwiching-docker-with-devuan/
|
[1]: https://paddy-hack.gitlab.io/posts/sandwiching-docker-with-devuan/
|
||||||
[2]: https://gitlab.com/paddy-hack/devuan/container_registry
|
[2]: https://gitlab.com/paddy-hack/devuan/container_registry
|
||||||
[3]: https://devuan.org/os/documentation/dev1fanboy/Upgrade-to-Devuan
|
[3]: https://devuan.org/
|
||||||
|
[4]: https://devuan.org/os/releases
|
||||||
|
[5]: https://devuan.org/os/documentation/dev1fanboy/Upgrade-to-Devuan
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue