#!/bin/bash -ex NAME="pclinuxos" VERSION="$1" # E.g: '26' IMAGE="${NAME}:${VERSION}" INSTALLROOT="/dev/shm/${IMAGE}" grep -qw "${INSTALLROOT}/dev" /proc/mounts && sudo umount "${INSTALLROOT}/dev" sudo rm -rf "${INSTALLROOT}" sudo mkdir -p "${INSTALLROOT}" LANG=C MIRROR="http://distrib-coffee.ipsl.jussieu.fr/pub/linux/pclinuxos/pclinuxos/apt/pclinuxos/64bit" curl "${MIRROR}/RPMS.x86_64/" | sed -n "/a href/ s|.*href=\"\(.*\)\.rpm\".*|\1.rpm|p" >"/dev/shm/pkg.list" mkdir -p "/dev/shm/packages" while read pkg; do file="$(grep "^$pkg-[0-9]" /dev/shm/pkg.list)" [ -z "${file}" ] && exit 1 wget -nv -c "${MIRROR}/RPMS.x86_64/${file}" -O "/dev/shm/packages/${file}" || exit 2 done < "pclinuxos.pkg" sudo mkdir -p "${INSTALLROOT}/dev" sudo mount --bind "/dev" "${INSTALLROOT}/dev" sudo mkdir -p "${INSTALLROOT}/var/lib/rpm" sudo rpmdb --initdb --root="${INSTALLROOT}" sudo rpm -Uvh --noscripts --root="${INSTALLROOT}" "/dev/shm/packages/"*".rpm" # Fix lzma library location sudo mv "${INSTALLROOT}/lib/liblzma."* "${INSTALLROOT}/lib64" # RĂ©install distro from inside chroot sudo mount --bind "/dev/shm" "${INSTALLROOT}/dev/shm" sudo rm -rf "${INSTALLROOT}/var/lib/rpm" sudo chroot "${INSTALLROOT}" rpmdb --initdb sudo chroot "${INSTALLROOT}" rpm -Uvh "/dev/shm/packages/"*".rpm" sudo chroot "${INSTALLROOT}" apt-get -y update sudo chroot "${INSTALLROOT}" apt-get -y upgrade sudo umount "${INSTALLROOT}/dev/shm" sudo umount "${INSTALLROOT}/dev" sudo tar -C "${INSTALLROOT}" -c . >"${IMAGE}.tar" sudo rm -rf "${INSTALLROOT}" docker rmi -f "${IMAGE}" docker import "${IMAGE}.tar" "${IMAGE}"