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