You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tde-packaging/redhat/docker/centos32.sh

51 lines
1.7 KiB

#!/bin/bash -ex
[ "$(whoami)" = "root" ] || exec sudo $0 $@
[ "$(rpm -E %_arch)" = "x86_64" ] && exec setarch i686 $0 $@
cd "$(dirname "$0")"
NAME="centos32"
VERSION="$1" # E.g: '5'
IMAGE="${NAME}:${VERSION}"
INSTALLROOT="/dev/shm/${IMAGE}"
DIR="el${VERSION}"
REPO="centos-${VERSION}"
# Installation minimale de la distribution
rm -rf "${INSTALLROOT}"
install -m 644 "${DIR}/${REPO}.repo" "/etc/yum.repos.d"
yum install --disablerepo="*" --enablerepo="${REPO}*" --nogpgcheck --releasever="${VERSION}" -y --installroot "${INSTALLROOT}" libselinux yum yum-plugin-ovl
rm -f "/etc/yum.repos.d/${REPO}.repo"
touch "${INSTALLROOT}/etc/fstab" "${INSTALLROOT}/etc/mtab"
# Activation des dépôts YUM de l'atelier DEPL-IT (remplace les dépôts Internet)
rm -f "${INSTALLROOT}/etc/yum.repos.d/"*".repo"
install -m 644 "${DIR}/${REPO}.repo" "${INSTALLROOT}/etc/yum.repos.d"
install -m 644 "/etc/resolv.conf" "${INSTALLROOT}/etc/resolv.conf"
rm -f "${INSTALLROOT}/etc/group" "${INSTALLROOT}/etc/passwd" "${INSTALLROOT}/etc/pam.d/system-auth" "${INSTALLROOT}/usr/share/info/dir"
# Ré-installation de la distribution en utilisant le "yum" intégré
rm -rf "${INSTALLROOT}/var/lib/rpm/"*
install -m 644 "${DIR}/"{epel,repoforge}*".repo" "${INSTALLROOT}/etc/yum.repos.d"
cp -a "/dev/urandom" "${INSTALLROOT}/dev/urandom"
chroot "${INSTALLROOT}" yum install --nogpgcheck -y $(<${DIR}/packages.base)
find "${INSTALLROOT}" -name "*.rpmnew" -delete
# Création de l'image Tar
tar -C "${INSTALLROOT}" -c . >"${IMAGE}.tar"
rm -rf "${INSTALLROOT}"
# Création de l'image Docker
if [ "$(docker images -q "${IMAGE}")" != "" ]; then
docker rmi -f "${IMAGE}"
fi
docker import "${IMAGE}.tar" "${IMAGE}"
# Test de l'image
docker run "${IMAGE}" yum repolist
exit 0