Skip to content

Latest commit

 

History

History
73 lines (46 loc) · 4.11 KB

README.md

File metadata and controls

73 lines (46 loc) · 4.11 KB

docker-crux

CRUX Linux Unofficial Docker Images

About these 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.

Image Variants

crux:slim or crux:<CRUX_VERSION>-slim

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.

crux:setup or crux:<CRUX_VERSION>-setup

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)

crux:updated or crux:<CRUX_VERSION>-updated

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.

crux:arm64 or crux:<CRUX_VERSION>-arm64

Based on CRUX-ARM and optimized for AArch64 ARM devices (platform arm64/v8).

crux:armhf or crux:<CRUX_VERSION>-armhf

Based on CRUX-ARM and optimized for HardFloat ARM devices (platform arm32/v7).

Supported tags and respective Dockerfile links

Examples:

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"'