From 2f3f37ebd69041baf20475c82050a3ddfda10366 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Thu, 19 Jan 2017 14:11:49 -0500 Subject: [PATCH] docker-min: add a new kickstart for creating a slimmer image We'll start with the same used for fedora docker base. --- fedora-docker-base-minimal.ks | 79 +++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 fedora-docker-base-minimal.ks diff --git a/fedora-docker-base-minimal.ks b/fedora-docker-base-minimal.ks new file mode 100644 index 0000000..8c0a117 --- /dev/null +++ b/fedora-docker-base-minimal.ks @@ -0,0 +1,79 @@ +# This is a minimal Fedora install designed to serve as a Docker base image. +# +# To keep this image minimal it only installs English language. You need to change +# yum configuration in order to enable other languages. +# +### Hacking on this image ### +# This kickstart is processed using Anaconda-in-ImageFactory (via Koji typically), +# but you can run imagefactory locally too. +# +# To do so, testing local changes, first you'll need a TDL file. I store one here: +# https://git.fedorahosted.org/cgit/fedora-atomic.git/tree/fedora-atomic-rawhide.tdl +# +# Then, once you have imagefactory and imagefactory-plugins installed, run: +# +# imagefactory --debug target_image --template /path/to/fedora-atomic-rawhide.tdl --parameter offline_icicle true --file-parameter install_script $(pwd)/fedora-docker-base.ks docker +# + +text # don't use cmdline -- https://github.com/rhinstaller/anaconda/issues/931 +bootloader --disabled +timezone --isUtc --nontp Etc/UTC +rootpw --lock --iscrypted locked + +keyboard us +zerombr +clearpart --all +part / --fstype ext4 --grow +network --bootproto=dhcp --device=link --activate --onboot=on +reboot + +%packages --excludedocs --instLangs=en --nocore +bash +tar # https://bugzilla.redhat.com/show_bug.cgi?id=1409920 +fedora-release +rootfiles +vim-minimal +dnf +dnf-yum # https://fedorahosted.org/fesco/ticket/1312#comment:29 +sssd-client +#fakesystemd #TODO: waiting for review https://bugzilla.redhat.com/show_bug.cgi?id=1118740 +-kernel + + +%end + +%post --erroronfail --log=/root/anaconda-post.log +set -eux + +# Set install langs macro so that new rpms that get installed will +# only install langs that we limit it to. +LANG="en_US" +echo "%_install_langs $LANG" > /etc/rpm/macros.image-language-conf + +# https://bugzilla.redhat.com/show_bug.cgi?id=1400682 +echo "Import RPM GPG key" +releasever=$(rpm -q --qf '%{version}\n' fedora-release) +basearch=$(uname -i) +rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch + +echo "# fstab intentionally empty for containers" > /etc/fstab + +# remove some extraneous files +rm -rf /var/cache/dnf/* +rm -rf /tmp/* + +#Mask mount units and getty service so that we don't get login prompt +systemctl mask systemd-remount-fs.service dev-hugepages.mount sys-fs-fuse-connections.mount systemd-logind.service getty.target console-getty.service + +# https://bugzilla.redhat.com/show_bug.cgi?id=1343138 +# Fix /run/lock breakage since it's not tmpfs in docker +# This unmounts /run (tmpfs) and then recreates the files +# in the /run directory on the root filesystem of the container +umount /run +systemd-tmpfiles --create --boot + +# Remove machine-id on pre generated images +rm -f /etc/machine-id +touch /etc/machine-id + +%end