12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/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.
|