|
| 1 | +#!/usr/bin/env bash |
| 2 | +set -ex |
| 3 | + |
| 4 | +if [[ $EUID -ne 0 ]]; then |
| 5 | + echo "This script must be run as root" 1>&2 |
| 6 | + exit 1 |
| 7 | +fi |
| 8 | + |
| 9 | +IMG_NAME="coreos.com/rkt/builder" |
| 10 | +VERSION="1.0.0" |
| 11 | +ARCH=amd64 |
| 12 | +OS=linux |
| 13 | + |
| 14 | +FLAGS=${FLAGS:-""} |
| 15 | +ACI_FILE=rkt-builder-"${VERSION}"-"${OS}"-"${ARCH}".aci |
| 16 | +BUILDDIR=/opt/build-rkt |
| 17 | +SRC_DIR=/opt/rkt |
| 18 | +ACI_GOPATH=/go |
| 19 | + |
| 20 | +DEBIAN_SID_DEPS="ca-certificates gcc libc6-dev make automake wget git golang-go cpio squashfs-tools realpath autoconf file xz-utils patch bc locales libacl1-dev libssl-dev libsystemd-dev gnupg" |
| 21 | + |
| 22 | +function acbuildend() { |
| 23 | + export EXIT=$?; |
| 24 | + acbuild --debug end && rm -rf rootfs && exit $EXIT; |
| 25 | +} |
| 26 | + |
| 27 | +echo "Generating debian sid tree" |
| 28 | + |
| 29 | +mkdir rootfs |
| 30 | +debootstrap --force-check-gpg --variant=minbase --components=main --include="${DEBIAN_SID_DEPS}" sid rootfs http://httpredir.debian.org/debian/ |
| 31 | +rm -rf rootfs/var/cache/apt/archives/* |
| 32 | + |
| 33 | +echo "Version: v${VERSION}" |
| 34 | +echo "Building ${ACI_FILE}" |
| 35 | + |
| 36 | +acbuild begin ./rootfs |
| 37 | +trap acbuildend EXIT |
| 38 | + |
| 39 | +acbuild $FLAGS set-name $IMG_NAME |
| 40 | +acbuild $FLAGS label add version v$VERSION |
| 41 | +acbuild $FLAGS set-user 0 |
| 42 | +acbuild $FLAGS set-group 0 |
| 43 | +acbuild $FLAGS environment add OS_VERSION sid |
| 44 | +acbuild $FLAGS environment add GOPATH $ACI_GOPATH |
| 45 | +acbuild $FLAGS environment add BUILDDIR $BUILDDIR |
| 46 | +acbuild $FLAGS environment add SRC_DIR $SRC_DIR |
| 47 | +acbuild $FLAGS mount add build-dir $BUILDDIR |
| 48 | +acbuild $FLAGS mount add src-dir $SRC_DIR |
| 49 | +acbuild $FLAGS set-working-dir $SRC_DIR |
| 50 | +acbuild $FLAGS copy-to-dir build.sh /scripts |
| 51 | +acbuild $FLAGS run /bin/mkdir -- -p $ACI_GOPATH |
| 52 | +acbuild $FLAGS run /bin/sh -- -c "GOPATH=${ACI_GOPATH} go get github.com/appc/spec/actool" |
| 53 | +acbuild $FLAGS set-exec /bin/bash /scripts/build.sh |
| 54 | +acbuild write --overwrite $ACI_FILE |
0 commit comments