GUNet Just enough OS (based on Debian)
GUNet Just enough OS (based on Debian)
The final ISO image will be in the folder /var/jeos/final
. We must volume mount it in order to have it available after
the Docker container has finished.
The recommened way to run the container is:
docker run --rm -v ${PWD}/final:/var/jeos/final --privileged ghcr.io/gunet/jeos-builder:<version>
The following environment variables are available. For network configuration, the general path is to use DHCP provided ones and only if these are not available, then use the ones in environment variables (if they are provided):
NET_IP
: The static IP in CIDR form (ie 192.168.2.1/24
).NET_GATEWAY
: The gateway IP. Only if IP has already been passed.NET_NAMESERVERS
: Nameserver IPs to use, separated by space (ie 8.8.8.8 4.4.4.4
)NET_HOSTNAME
: The hostname to set (ie sso.gunet.gr
)NET_DOMAIN
: The domain to set (ie gunet.gr
)NET_STATIC
: If set to yes
then we only perform static network configuration and all the above variables must be setROOT_PASSWORD
: The (plaintext) root passwordThe NET_HOSTNAME
and NET_DOMAIN
can be helpful even in a DHCP configuration in order to avoid the installer asking for the corresponing values.
If no environment variables are passed then the installer will just ask more questions. The purpose of the environment variables is mainly to avoid asking questions and making the installation completely non-interactive (for instace in order to use the produced ISO as input to a packer template).
authorized_keys
file under gunet/
folder then it will be used in the resulting ISO: -v ${PWD}/authorized_keys:/var/jeos/gunet/authorized_keys
65432
instead of the default 22
ARG
values:
docker build -t ghcr.io/gunet/jeos-builder .
docker build --build-arg DEBIAN_VERSION=<version> -t ghcr.io/gunet/jeos-builder .
latest
: 11.8.0
12.2.0
510 MB
760 MB
450 MB
750 MB
1.2 GB
1.8 GB
In order to produce a Just Enough Operating System iso image, we need to run the script mkiso.sh as follows:
sudo ./mkiso.sh
It uses the following two environment variables:
DEBIAN_ISO
to find the Debian ISO in $(pwd)/debian/${DEBIAN_ISO}
DEBIAN_VERSION
(if available) to use it in the name of the produced ISO file. The default name is $(pwd)/final/gunet-jeos-debian.iso
and if the DEBIAN_VERSION
variable is available $(pwd)/final/gunet-jeos-debian-${DEBIAN_VERSION}.iso
The DEBIAN_ISO
file is a Debian ISO file from the Debian project. An archive of ISO images for previous
Debian versions can be found here
The produced .iso file installs a Debian OS, by requesting only the root password and the network configuration paramenters, in case DHCP fails, during the installation if the necessary environment variables are not available. All the configuration must be located into gunet/ folder. In the current configuration, gunet/ folder contains the follwing:
apt
.apt
.22
to 65432
.Note: For any further addition to the above, the new configuration file or script must be included in the gunet/ file and the respective changes in the late_command of the preseed.cfg file must be performed.