forked from srbala/fedora-kickstarts
		
	A stab at the Modular Fedora Docker kickstarts.
Signed-off-by: Ralph Bean <rbean@redhat.com>
This commit is contained in:
		
							parent
							
								
									021225b76d
								
							
						
					
					
						commit
						f28c5e3bc1
					
				
							
								
								
									
										70
									
								
								fedora-modular-docker-base-minimal.ks
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								fedora-modular-docker-base-minimal.ks
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,70 @@ | |||||||
|  | # See docker-base-common.ks for details on how to hack on docker image kickstarts | ||||||
|  | # This base is a stripped back Fedora image without python3/dnf. | ||||||
|  | # If you need that use the standard base image. | ||||||
|  | 
 | ||||||
|  | %include fedora-modular-docker-common.ks | ||||||
|  | 
 | ||||||
|  | %packages --excludedocs --instLangs=en --nocore --excludeWeakdeps | ||||||
|  | microdnf | ||||||
|  | 
 | ||||||
|  | %end | ||||||
|  | 
 | ||||||
|  | %post --erroronfail --log=/root/anaconda-post.log | ||||||
|  | # remove some random help txt files | ||||||
|  | rm -fv usr/share/gnupg/help*.txt | ||||||
|  | 
 | ||||||
|  | # Pruning random things | ||||||
|  | rm usr/lib/rpm/rpm.daily | ||||||
|  | rm -rfv usr/lib64/nss/unsupported-tools/  # unsupported | ||||||
|  | 
 | ||||||
|  | # Statically linked crap | ||||||
|  | rm -fv usr/sbin/{glibc_post_upgrade.x86_64,sln} | ||||||
|  | ln usr/bin/ln usr/sbin/sln | ||||||
|  | 
 | ||||||
|  | # Remove some dnf info | ||||||
|  | rm -rfv /var/lib/dnf | ||||||
|  | 
 | ||||||
|  | # don't need icons | ||||||
|  | rm -rfv /usr/share/icons/* | ||||||
|  | 
 | ||||||
|  | #some random not-that-useful binaries | ||||||
|  | rm -fv /usr/bin/pinky | ||||||
|  | 
 | ||||||
|  | # we lose presets by removing /usr/lib/systemd but we do not care | ||||||
|  | rm -rfv /usr/lib/systemd | ||||||
|  | 
 | ||||||
|  | # if you want to change the timezone, bind-mount it from the host or reinstall tzdata | ||||||
|  | rm -fv /etc/localtime | ||||||
|  | mv /usr/share/zoneinfo/UTC /etc/localtime | ||||||
|  | rm -rfv  /usr/share/zoneinfo | ||||||
|  | 
 | ||||||
|  | # Final pruning | ||||||
|  | rm -rfv /var/cache/* /var/log/* /tmp/* | ||||||
|  | 
 | ||||||
|  | %end | ||||||
|  | 
 | ||||||
|  | %post --nochroot --erroronfail --log=/mnt/sysimage/root/anaconda-post-nochroot.log | ||||||
|  | set -eux | ||||||
|  | 
 | ||||||
|  | # 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 | ||||||
|  | # NOTE: run this in nochroot because "umount" does not exist in chroot | ||||||
|  | umount /mnt/sysimage/run | ||||||
|  | # The file that specifies the /run/lock tmpfile is | ||||||
|  | # /usr/lib/tmpfiles.d/legacy.conf, which is part of the systemd | ||||||
|  | # rpm that isn't included in this image. We'll create the /run/lock | ||||||
|  | # file here manually with the settings from legacy.conf | ||||||
|  | # NOTE: chroot to run "install" because it is not in anaconda env | ||||||
|  | chroot /mnt/sysimage install -d /run/lock -m 0755 -o root -g root | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | # See: https://bugzilla.redhat.com/show_bug.cgi?id=1051816 | ||||||
|  | # NOTE: run this in nochroot because "find" does not exist in chroot | ||||||
|  | KEEPLANG=en_US | ||||||
|  | for dir in locale i18n; do | ||||||
|  |     find /mnt/sysimage/usr/share/${dir} -mindepth  1 -maxdepth 1 -type d -not \( -name "${KEEPLANG}" -o -name POSIX \) -exec rm -rfv {} + | ||||||
|  | done | ||||||
|  | 
 | ||||||
|  | %end | ||||||
							
								
								
									
										75
									
								
								fedora-modular-docker-common.ks
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										75
									
								
								fedora-modular-docker-common.ks
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,75 @@ | |||||||
|  | # This is the common bits between Docker base images based on Modular Fedora. | ||||||
|  | # | ||||||
|  | # To keep this image minimal it only installs English language. You need to change | ||||||
|  | # dnf 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://pagure.io/fedora-atomic/raw/master/f/fedora-atomic-rawhide.tdl | ||||||
|  | # | ||||||
|  | # Then, once you have imagefactory and imagefactory-plugins installed, run: | ||||||
|  | # | ||||||
|  | #   ksflatten -c fedora-modular-base[-minimal].ks -o fedora-modular-base-test.ks | ||||||
|  | #   imagefactory --debug target_image --template /path/to/fedora-atomic-rawhide.tdl --parameter offline_icicle true --file-parameter install_script $(pwd)/fedora-modular-base-test.ks modular | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | 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 | ||||||
|  | network --bootproto=dhcp --device=link --activate --onboot=on | ||||||
|  | reboot | ||||||
|  | 
 | ||||||
|  | # boot partitions are irrelevant as the final docker image is a tarball | ||||||
|  | zerombr | ||||||
|  | clearpart --all | ||||||
|  | #autopart --noboot --nohome --noswap --nolvm | ||||||
|  | 
 | ||||||
|  | %packages --excludedocs --instLangs=en --nocore | ||||||
|  | fedora-modular-release | ||||||
|  | bash | ||||||
|  | coreutils-single | ||||||
|  | glibc-minimal-langpack | ||||||
|  | libcrypt | ||||||
|  | rpm | ||||||
|  | shadow-utils | ||||||
|  | sssd-client | ||||||
|  | util-linux | ||||||
|  | -kernel | ||||||
|  | -dosfstools | ||||||
|  | -e2fsprogs | ||||||
|  | -fuse-libs | ||||||
|  | -gnupg2-smime | ||||||
|  | -libss # used by e2fsprogs | ||||||
|  | -libusbx | ||||||
|  | -pinentry | ||||||
|  | -shared-mime-info | ||||||
|  | -trousers | ||||||
|  | -xkeyboard-config | ||||||
|  | 
 | ||||||
|  | %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-modular-release) | ||||||
|  | rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-primary | ||||||
|  | 
 | ||||||
|  | echo "# fstab intentionally empty for containers" > /etc/fstab | ||||||
|  | 
 | ||||||
|  | # Remove machine-id on pre generated images | ||||||
|  | rm -f /etc/machine-id | ||||||
|  | touch /etc/machine-id | ||||||
|  | 
 | ||||||
|  | %end | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user