@@ -39,12 +39,17 @@ opensuse_distro() {
3939 esac
4040 run zypper -n --root /new-root ar -f $DLURL$REPO repo-oss
4141 run zypper -n --root /new-root ar -f $DLURL$UPDATEREPO repo-oss-update
42- mkdir " $WORK /new-root/dev"
42+ mkdir " $WORK /new-root/dev" " $WORK /new-root/proc "
4343 mknod -m 600 " $WORK /new-root/dev/console" c 5 1
4444 mknod -m 666 " $WORK /new-root/dev/null" c 1 3
4545 mknod -m 666 " $WORK /new-root/dev/zero" c 1 5
46- run zypper -n --root /new-root --gpg-auto-import-keys refresh
47- run zypper -n --root /new-root install rpm zypper wget
46+ # following 2 lines needed for tumbleweed ca-certificates
47+ ln -s /proc/self/fd " $WORK /new-root/dev/fd"
48+ mount -t proc proc " $WORK /new-root/proc"
49+ run zypper -n --root /new-root --gpg-auto-import-keys ref
50+ run zypper -n --root /new-root install --download in-advance -t pattern base basesystem enhanced_base
51+ run zypper -n --root /new-root install --download in-advance ca-certificates ca-certificates-mozilla
52+ umount " $WORK /new-root/proc"
4853
4954 echo " Generating opensuse-$DISTRO -dockerbase.tar.xz"
5055 tar cJf " opensuse-$DISTRO -dockerbase-$DATE .tar.xz" -C " $WORK /new-root" .
@@ -79,6 +84,27 @@ opensuse_distro() {
7984 # make sudo available without password (default for key auth)
8085 echo " %shellsuser ALL=(ALL) NOPASSWD: ALL" > " $WORK /etc/sudoers.d/01-shells" && chmod 440 " $WORK /etc/sudoers.d/01-shells"
8186 ;;
87+ * -desktop)
88+ # for example: opensuse-leap-gnome-desktop
89+ opensuse_prepare " $DISTRO "
90+
91+ # install what we need
92+ run zypper -n install --download in-advance --auto-agree-with-licenses -t pattern fonts x11 imaging multimedia sw_management $PATTERN
93+ run zypper -n install --download in-advance NetworkManager spice-vdagent
94+
95+ # we get a cloud-firstboot
96+ run systemctl mask systemd-firstboot
97+
98+ # ensure networkmanager is enabled and not systemd-networkd
99+ run systemctl disable wicked
100+ run systemctl enable NetworkManager NetworkManager-wait-online
101+ run systemctl enable sshd
102+
103+ # make sudo available without password (default for key auth)
104+ echo " %shellsuser ALL=(ALL) NOPASSWD: ALL" > " $WORK /etc/sudoers.d/01-shells" && chmod 440 " $WORK /etc/sudoers.d/01-shells"
105+
106+ opensuse_cfg " $DISTRO " " $PATTERN "
107+ ;;
82108 * )
83109 # start from base
84110 if [ ! -f " opensuse-$DISTRO -base.qcow2" ]; then
@@ -95,6 +121,32 @@ opensuse_distro() {
95121 esac
96122}
97123
124+ opensuse_prepare () {
125+ # download opensuse image, either tumbleweed or leap
126+ case " $1 " in
127+ tumbleweed)
128+ getfile opensuse-tumbleweed-dockerbase-20210403.tar.xz e06f5971b490b50e70ffbdef94ce7dc4a3e4c0076fbd9b098900a9b30caa3cef
129+ prepare opensuse-tumbleweed-dockerbase-20210403.tar.xz
130+ ;;
131+ leap)
132+ getfile opensuse-leap-dockerbase-20210403.tar.xz 3660e147c0b786247e60395596f1460574c08b2ed410a8a01b93cbea7c5767df
133+ prepare opensuse-leap-dockerbase-20210403.tar.xz
134+ ;;
135+ * )
136+ echo " Unsupported openSUSE distro ($DISTRO ). Supported are tumbleweed and leap!"
137+ exit 1
138+ ;;
139+ esac
140+
141+ # configure resolver
142+ echo ' nameserver 8.8.8.8' > " $WORK /run/netconfig/resolv.conf"
143+ echo ' nameserver 8.8.4.4' >> " $WORK /run/netconfig/resolv.conf"
144+
145+ # refresh/update
146+ run zypper -n ref
147+ run zypper -n dup
148+ }
149+
98150opensuse_cfg () {
99151 local DISTRO=$1
100152 local DESKTOP=$2
0 commit comments