CRUX Linux Unofficial Docker Images
The crux:latest
tag will always point the latest official CRUX release. Those releases are also tagged with their version (ie, crux:latest
is an alias for crux:3.7
, crux:slim
is an alias for crux:3.7-slim
, etc).
To artifacts required for these images are built using the iso2tar.sh tool. This tool converts a CRUX release from ISO format to TAR format, and then decompressing this TAR file we can extract packages and all resources necessary to generate the images.
The images tagged as setup
are the ones that are made first. All other images use these setup
images as part of multistage builds.
The images are not multi-arch. If you are looking for an image compatible with the ARM architecture please check the arm64
and armhf
image variants.
These tags are an experiment in providing a slimmer base removing some extra files and packages that are normally not necessary within containers. See the Dockerfile of those for more details about what gets removed during the "slimification" process.
The largest images. Wiith everything the CRUX ISO brings in /media/crux (core, opt and xorg packages, tools, boot files, etc.) and ready to use as installation media (see examples)
They are an up-to-date variant based on an unofficial CRUX ISO built with updated packages for avoiding long compile times due to updates after an official release. This updated ISO is contributed by Matt Housh and available from his site crux.ninja.
For this variant, there are also subvariants like updated-slim
and updated-setup
, etc.
Based on CRUX-ARM and optimized for AArch64 ARM devices (platform arm64/v8).
Based on CRUX-ARM and optimized for HardFloat ARM devices (platform arm32/v7).
3.7
,latest
3.7-slim
,slim
3.7-setup
,setup
3.7-updated
,updated
3.7-updated-slim
,updated-slim
3.7-updated-setup
,updated-setup
3.7-arm64
,arm64
3.7-armhf
,armhf
To install or upgrade CRUX on a secondary partition (e.g. /dev/sda2
) we can use the setup
variant and do something like this:
$ sudo mount /dev/sda2 /mnt
$ docker run -it -v /mnt:/mnt sepen/crux:setup
$ sudo umount /mnt
To test building a port (with the updated
variant)
$ docker run -it -v $(pwd)/ports:/tmp/ports sepen/crux:updated \
/bin/bash -c 'cd /tmp/ports/myport && pkgmk -d'
To test building a port with its dependencies (with the updated
variant)
$ docker run -it -v $(pwd)/ports:/tmp/ports sepen/crux:updated \
/bin/bash -c 'prt-get depinst myport --config-prepend="prtdir /tmp/ports"'