fixed busy unmount problem

This commit is contained in:
Marc Wäckerlin
2016-09-30 14:26:41 +00:00
parent d481ef34a5
commit 9f1c8760ab
12 changed files with 568 additions and 37 deletions

View File

@@ -11,6 +11,9 @@ docker_user=${1:-${docker_user:-$(id -un)}}
if test -f /etc/setup-debootstrap.conf; then
. /etc/setup-debootstrap.conf
fi
if test -f ~/setup-debootstrap.conf; then
. ~/setup-debootstrap.conf
fi
tmpdir=${tmpdir:-"/var/tmp/chroots"}
test -d "${tmpdir}" || mkdir -p "${tmpdir}"
@@ -139,6 +142,11 @@ for ((i=0; i<${#distros[@]}; ++i)); do
fi
fi
echo " ---- mount filesystems in ${tmpdir}/${distro}-${arch}" 1>&2
for x in proc sys dev; do
if mount | grep -q "${tmpdir}/${distro}-${arch}"/$x/; then
umount -flr "${tmpdir}/${distro}-${arch}"/$x/
fi
done
sudo mount -t proc proc "${tmpdir}/${distro}-${arch}"/proc/
sudo mount -t sysfs sys "${tmpdir}/${distro}-${arch}"/sys/
sudo mount -o bind /dev "${tmpdir}/${distro}-${arch}"/dev/
@@ -187,9 +195,11 @@ EOF1
echo " ---- install ${instpkgs} to ${tmpdir}/${distro}-${arch}" 1>&2
sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true install -y ${instpkgs}
echo " ---- unmount filesystems in ${tmpdir}/${distro}-${arch}" 1>&2
sudo umount "${tmpdir}/${distro}-${arch}"/proc/
sudo umount "${tmpdir}/${distro}-${arch}"/sys/
sudo umount "${tmpdir}/${distro}-${arch}"/dev/
for x in proc sys dev; do
if mount | grep -q "${tmpdir}/${distro}-${arch}"/$x/; then
umount -flr "${tmpdir}/${distro}-${arch}"/$x/
fi
done
echo " ---- import ${tmpdir}/${distro}-${arch} to ${docker_user}/${type}:${distro}-${arch}" 1>&2
cd "${tmpdir}/${distro}-${arch}"
sudo tar c . | docker import - "${docker_user}/${type}:${distro}-${arch}"