#!/bin/bash set -e # these should match the names found at http://www.debian.org/releases/ stableSuite='squeeze' testingSuite='wheezy' unstableSuite='sid' # if suite is equal to this, it gets the "latest" tag latestSuite="$testingSuite" variant='minbase' include='iproute,iputils-ping' repo="$1" suite="${2:-$latestSuite}" mirror="${3:-}" # stick to the default debootstrap mirror if one is not provided if [ ! "$repo" ]; then echo >&2 "usage: $0 repo [suite [mirror]]" echo >&2 " ie: $0 tianon/debian squeeze" exit 1 fi target="/tmp/docker-rootfs-debian-$suite-$$-$RANDOM" cd "$(dirname "$(readlink -f "$BASH_SOURCE")")" returnTo="$(pwd -P)" set -x # bootstrap mkdir -p "$target" sudo debootstrap --verbose --variant="$variant" --include="$include" "$suite" "$target" "$mirror" cd "$target" # create the image img=$(sudo tar -c . | docker import -) # tag suite docker tag $img $repo $suite if [ "$suite" = "$latestSuite" ]; then # tag latest docker tag $img $repo latest fi # test the image docker run -i -t $repo:$suite echo success # unstable's version numbers match testing (since it's mostly just a sandbox for testing), so it doesn't get a version number tag if [ "$suite" != "$unstableSuite" -a "$suite" != 'unstable' ]; then # tag the specific version ver=$(docker run $repo:$suite cat /etc/debian_version) docker tag $img $repo $ver fi # cleanup cd "$returnTo" sudo rm -rf "$target"