|
|
|
#!/bin/bash -e
|
|
|
|
|
|
|
|
if [ "$(whoami)" != "root" ]; then
|
|
|
|
sudo exec $0 $@
|
|
|
|
fi
|
|
|
|
|
|
|
|
VERSION="$1" # E.g: '42.3'
|
|
|
|
|
|
|
|
if [ "${VERSION}" = "tumbleweed" ]; then
|
|
|
|
URL="https://download.opensuse.org/ports/i586/tumbleweed"
|
|
|
|
NAME="opensuse32/tumbleweed"
|
|
|
|
else
|
|
|
|
URL="http://download.opensuse.org/distribution/leap/${VERSION}"
|
|
|
|
NAME="opensuse32/leap"
|
|
|
|
fi
|
|
|
|
|
|
|
|
IMAGE="${NAME}:latest"
|
|
|
|
INSTALLROOT="/dev/shm/${IMAGE}"
|
|
|
|
|
|
|
|
[ -x /usr/bin/pigz ] && GZIP=pigz || GZIP=gzip
|
|
|
|
|
|
|
|
for dir in dev proc sys; do
|
|
|
|
if [ -d "${INSTALLROOT}/${dir}" ]; then
|
|
|
|
umount "${INSTALLROOT}/${dir}"
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
|
|
|
rm -rf "${INSTALLROOT}"
|
|
|
|
mkdir -p "${INSTALLROOT}"
|
|
|
|
|
|
|
|
for dir in dev proc sys; do
|
|
|
|
mkdir -p "${INSTALLROOT}/${dir}"
|
|
|
|
mount --bind "/${dir}" "${INSTALLROOT}/${dir}"
|
|
|
|
done
|
|
|
|
|
|
|
|
zypper --root "${INSTALLROOT}" \
|
|
|
|
ar "${URL}/repo/oss/" "oss"
|
|
|
|
zypper --root "${INSTALLROOT}" \
|
|
|
|
ar "${URL}/repo/non-oss/" "non-oss"
|
|
|
|
|
|
|
|
if [ "${VERSION}" != "tumbleweed" ]; then
|
|
|
|
zypper --root "${INSTALLROOT}" \
|
|
|
|
ar "http://download.opensuse.org/update/leap/${VERSION}/oss/" "update-oss"
|
|
|
|
zypper --root "${INSTALLROOT}" \
|
|
|
|
ar "http://download.opensuse.org/update/leap/${VERSION}/non-oss/" "update-non-oss"
|
|
|
|
fi
|
|
|
|
zypper --root "${INSTALLROOT}" \
|
|
|
|
--gpg-auto-import-keys ref
|
|
|
|
setarch i686 zypper --root "${INSTALLROOT}" \
|
|
|
|
install --download-only -y \
|
|
|
|
bash \
|
|
|
|
ca-certificates \
|
|
|
|
curl \
|
|
|
|
docbook-utils \
|
|
|
|
filesystem \
|
|
|
|
gawk \
|
|
|
|
glibc \
|
|
|
|
glibc-extra \
|
|
|
|
grep \
|
|
|
|
gzip \
|
|
|
|
libpcre1 \
|
|
|
|
libselinux1 \
|
|
|
|
openSUSE-release \
|
|
|
|
system-user-root \
|
|
|
|
util-linux vim \
|
|
|
|
xz \
|
|
|
|
zlib \
|
|
|
|
zypper
|
|
|
|
rpm -Uvh --root "${INSTALLROOT}" "${INSTALLROOT}/var/cache/zypp/packages/oss/"*"/"*".rpm"
|
|
|
|
|
|
|
|
chroot "${INSTALLROOT}" rpmdb --rebuilddb
|
|
|
|
|
|
|
|
for dir in dev proc sys; do
|
|
|
|
umount "${INSTALLROOT}/${dir}"
|
|
|
|
done
|
|
|
|
|
|
|
|
rm -rfv "${INSTALLROOT}/var/cache/zypp/packages/"*
|
|
|
|
|
|
|
|
FILE="${IMAGE//\//_}.tar"
|
|
|
|
tar -C "${INSTALLROOT}" -c . >"${FILE}"
|
|
|
|
rm -rf "${INSTALLROOT}"
|
|
|
|
|
|
|
|
docker rmi -f "${IMAGE}"
|
|
|
|
docker import "${FILE}" "${IMAGE}"
|
|
|
|
|
|
|
|
${GZIP} "${FILE}"
|
|
|
|
mkdir -p "/home/${SUDO_USER}/tde/docker"
|
|
|
|
mv -fv "${FILE}.gz" "/home/${SUDO_USER}/tde/docker"
|