#!/usr/bin/env bash | |
# Generate a very minimal filesystem based on busybox-static, | |
# and load it into the local docker under the name "busybox". | |
echo >&2 | |
echo >&2 'warning: this script is deprecated - see mkimage.sh and mkimage/busybox-static' |
|
echo >&2 | |
BUSYBOX=$(which busybox) | |
[ "$BUSYBOX" ] || { |
|
echo "Sorry, I could not locate busybox." |
|
echo "Try 'apt-get install busybox-static'?" |
|
exit 1 | |
} | |
set -e | |
ROOTFS=${TMPDIR:-/var/tmp}/rootfs-busybox-$$-$RANDOM | |
mkdir $ROOTFS | |
cd $ROOTFS |
|
mkdir bin etc dev dev/pts lib proc sys tmp | |
touch etc/resolv.conf | |
cp /etc/nsswitch.conf etc/nsswitch.conf | |
echo root:x:0:0:root:/:/bin/sh > etc/passwd | |
echo root:x:0: > etc/group | |
ln -s lib lib64 | |
ln -s bin sbin | |
cp $BUSYBOX bin | |
for X in $(busybox --list) |
|
do | |
ln -s busybox bin/$X | |
done | |
rm bin/init | |
ln bin/busybox bin/init | |
cp /lib/x86_64-linux-gnu/lib{pthread,c,dl,nsl,nss_*}.so.* lib | |
cp /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2 lib | |
for X in console null ptmx random stdin stdout stderr tty urandom zero | |
do | |
cp -a /dev/$X dev | |
done | |
tar --numeric-owner -cf- . | docker import - busybox | |
docker run -i -u root busybox /bin/echo Success. |