3 AUTHOR="${AUTHOR:-W. Trevor King <wking@tremily.us>}"
4 NAMESPACE="${NAMESPACE:-wking}"
5 #PORTAGE="${PORTAGE:-/usr/portage}"
6 DATE="${DATE:-20131205}"
7 MIRROR="${MIRROR:-http://mirror.mcs.anl.gov/pub/gentoo/}"
8 ARCH_URL="${ARCH_URL:-${MIRROR}/releases/amd64/current-stage3/}"
9 STAGE3="${STAGE3:-stage3-amd64-${DATE}.tar.bz2}"
10 STAGE3_CONTENTS="${STAGE3_CONTENTS:-${STAGE3}.CONTENTS}"
11 STAGE3_DIGESTS="${STAGE3_DIGESTS:-${STAGE3}.DIGESTS.asc}"
26 STAGE3_IMAGES=$(docker images "${NAMESPACE}/gentoo")
27 STAGE3_MATCHES=$(echo "${STAGE3_IMAGES}" | grep "${DATE}")
28 if [ -z "${STAGE3_MATCHES}" ]; then
29 # import stage3 image from Gentoo mirrors
31 for FILE in "${STAGE3}" "${STAGE3_CONTENTS}" "${STAGE3_DIGESTS}"; do
32 if [ ! -f "downloads/${FILE}" ]; then
33 wget -O "downloads/${FILE}" "${ARCH_URL}/${FILE}"
37 gpg --verify "downloads/${STAGE3_DIGESTS}" || die "insecure digests"
38 SHA512_HASHES=$(grep -A1 SHA512 "downloads/${STAGE3_DIGESTS}" | grep -v '^--')
39 SHA512_CHECK=$(cd downloads/ && (echo "${SHA512_HASHES}" | sha512sum -c))
40 SHA512_FAILED=$(echo "${SHA512_CHECK}" | grep FAILED)
41 if [ -n "${SHA512_FAILED}" ]; then
42 die "${SHA512_FAILED}"
45 docker import - "${NAMESPACE}/gentoo:${DATE}" < "downloads/${STAGE3}" || die "failed to import"
48 docker tag -f "${NAMESPACE}/gentoo:${DATE}" "${NAMESPACE}/gentoo:latest" || die "failed to tag"
50 for REPO in ${REPOS}; do
51 REPO_IMAGES=$(docker images "${NAMESPACE}/${REPO}")
52 REPO_MATCHES=$(echo "${REPO_IMAGES}" | grep "${DATE}")
53 if [ -z "${REPO_MATCHES}" ]; then
54 cp "${REPO}/Dockerfile.template" "${REPO}/Dockerfile"
55 sed -i "s|TAG|${DATE}|g" "${REPO}/Dockerfile"
56 sed -i "s|NAMESPACE|${NAMESPACE}|g" "${REPO}/Dockerfile"
57 sed -i "s|MAINTAINER.*|MAINTAINER ${AUTHOR}|g" "${REPO}/Dockerfile"
58 docker build -t "${NAMESPACE}/${REPO}:${DATE}" "${REPO}" || die "failed to build"
60 docker tag -f "${NAMESPACE}/${REPO}:${DATE}" "${NAMESPACE}/${REPO}:latest" || die "failed to tag"