github.com/blixtra/rkt@v0.8.1-0.20160204105720-ab0d1add1a43/scripts/acbuild-rkt-builder.sh (about) 1 #!/usr/bin/env bash 2 3 if [[ $EUID -ne 0 ]]; then 4 echo "This script must be run as root" 1>&2 5 exit 1 6 fi 7 8 set -ex 9 10 function check_tool { 11 if ! which $1; then 12 echo "Get $1 and put it in your \$PATH" >&2; 13 exit 1; 14 fi 15 } 16 17 MODIFY=${MODIFY:-""} 18 FLAGS=${FLAGS:-""} 19 IMG=${IMG:-"debian"} 20 IMG_VERSION=${IMG_VERSION:-"sid"} 21 DOCKERIMG="$IMG:$IMG_VERSION" 22 ACI_FILE=${ACI_FILE:-"./library-$IMG-$IMG_VERSION.aci"} 23 OUT_ACI=${OUT_ACI:-"rkt-builder.aci"} 24 ACI_NAME=${ACI_NAME:-"coreos.com/rkt/builder"} 25 BUILDDIR=/opt/build-rkt 26 SRC_DIR=/opt/rkt 27 ACI_GOPATH=/go 28 VERSION=${VERSION:-"v0.16.0+git"} 29 echo "Version: $VERSION" 30 31 echo "Building $ACI_FILE" 32 33 check_tool acbuild 34 check_tool docker2aci 35 # check_tool actool 36 37 if [ ! -f "$ACI_FILE" ]; then 38 docker2aci "docker://$DOCKERIMG" 39 # These base images dont always come with valid values 40 # actool patch-manifest -user 0 -group 0 --name $IMG-$IMG_VERSION --exec /bin/bash --replace $ACI_FILE 41 fi 42 43 acbuildend () { 44 export EXIT=$?; 45 acbuild --debug end && exit $EXIT; 46 } 47 48 # If modify is specified, pass the modify flag to each command and don't use 49 # acbuild begin, write or end otherwise build with a context, and setup a trap 50 # to handle failures, 51 if [ "$MODIFY" ]; then 52 FLAGS="--modify $MODIFY $FLAGS" 53 OUT_ACI=$MODIFY 54 else 55 acbuild $FLAGS begin "$ACI_FILE" 56 trap acbuildend EXIT 57 fi 58 59 acbuild $FLAGS set-name $ACI_NAME 60 acbuild $FLAGS label add version $VERSION 61 acbuild $FLAGS set-user 0 62 acbuild $FLAGS set-group 0 63 acbuild $FLAGS environment add OS_VERSION $IMG_VERSION 64 acbuild $FLAGS environment add GOPATH $ACI_GOPATH 65 acbuild $FLAGS environment add BUILDDIR $BUILDDIR 66 acbuild $FLAGS environment add SRC_DIR $SRC_DIR 67 acbuild $FLAGS mount add build-dir $BUILDDIR 68 acbuild $FLAGS mount add src-dir $SRC_DIR 69 acbuild $FLAGS set-working-dir $SRC_DIR 70 acbuild $FLAGS copy "$(dirname $0)" /scripts 71 acbuild $FLAGS run /bin/bash "/scripts/install-deps-$IMG-$IMG_VERSION.sh" 72 acbuild $FLAGS run /bin/bash /scripts/install-appc-spec.sh 73 acbuild $FLAGS set-exec /bin/bash /scripts/build-rkt.sh 74 if [ -z "$MODIFY" ]; then 75 acbuild $FLAGS write --overwrite $OUT_ACI 76 fi