5 [ $(id -u) -eq 0 ] || {
6 printf >&2 '%s requires root\n' "$0"
11 printf >&2 '%s: [-r release] [-m mirror] [-s] [-c additional repository] [-a arch]\n' "$0"
16 TMP=$(mktemp -d ${TMPDIR:-/var/tmp}/alpine-docker-XXXXXXXXXX)
17 ROOTFS=$(mktemp -d ${TMPDIR:-/var/tmp}/alpine-docker-rootfs-XXXXXXXXXX)
18 trap "rm -rf $TMP $ROOTFS" EXIT TERM INT
22 curl -sSL $MAINREPO/$ARCH/APKINDEX.tar.gz | tar -Oxz |
23 grep --text '^P:apk-tools-static$' -A1 | tail -n1 | cut -d: -f2
27 curl -sSL $MAINREPO/$ARCH/apk-tools-static-$(apkv).apk |
28 tar -xz -C $TMP sbin/apk.static
32 $TMP/sbin/apk.static --repository $MAINREPO --update-cache --allow-untrusted \
33 --root $ROOTFS --initdb add alpine-base
37 printf '%s\n' $MAINREPO > $ROOTFS/etc/apk/repositories
38 printf '%s\n' $ADDITIONALREPO >> $ROOTFS/etc/apk/repositories
43 id=$(tar --numeric-owner -C $ROOTFS -c . | docker import - alpine:$REL)
45 docker tag $id alpine:latest
46 docker run -i -t --rm alpine printf 'alpine:%s with id=%s created!\n' $REL $id
50 [ $SAVE -eq 1 ] || return
52 tar --numeric-owner -C $ROOTFS -c . | xz > rootfs.tar.xz
55 while getopts "hr:m:sc:a:" opt; do
67 ADDITIONALREPO=$OPTARG
79 MIRROR=${MIRROR:-http://nl.alpinelinux.org/alpine}
81 MAINREPO=$MIRROR/$REL/main
82 ADDITIONALREPO=$MIRROR/$REL/${ADDITIONALREPO:-community}
83 ARCH=${ARCH:-$(uname -m)}