summaryrefslogtreecommitdiffstats
path: root/redhat/docker/opensuse32.sh
blob: 4698cd7405a1ce7ae3aefae4dfe81da429419962 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/bin/bash -ex

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}" ] && grep "${INSTALLROOT}/${dir}" /proc/mounts; 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 \
  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"
FILE="${FILE//:/_}"
tar -C "${INSTALLROOT}" -c . >"/tmp/${FILE}"
rm -rf "${INSTALLROOT}"

podman rmi -f "${IMAGE}"
podman import "/tmp/${FILE}" "${IMAGE}"

${GZIP} "/tmp/${FILE}"
mkdir -p "/home/${SUDO_USER}/tde/docker"
mv -fv "/tmp/${FILE}.gz" "/home/${SUDO_USER}/tde/docker"