contrib/dockerlib.sh
changeset 38004 1868db0d1515
parent 38003 1335bbfb066f
child 38005 ea70512b1ad6
equal deleted inserted replaced
38003:1335bbfb066f 38004:1868db0d1515
     1 #!/bin/sh -eu
       
     2 
       
     3 # This function exists to set up the DOCKER variable and verify that
       
     4 # it's the binary we expect. It also verifies that the docker service
       
     5 # is running on the system and we can talk to it.
       
     6 function checkdocker() {
       
     7   if which docker.io >> /dev/null 2>&1 ; then
       
     8     DOCKER=docker.io
       
     9   elif which docker >> /dev/null 2>&1 ; then
       
    10     DOCKER=docker
       
    11   else
       
    12     echo "Error: docker must be installed"
       
    13     exit 1
       
    14   fi
       
    15 
       
    16   $DOCKER -h 2> /dev/null | grep -q Jansens && { echo "Error: $DOCKER is the Docking System Tray - install docker.io instead"; exit 1; }
       
    17   $DOCKER version | grep -Eq "^Client( version)?:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; }
       
    18   $DOCKER version | grep -Eq "^Server( version)?:" || { echo "Error: could not get docker server version - check it is running and your permissions"; exit 1; }
       
    19 }
       
    20 
       
    21 # Construct a container and leave its name in $CONTAINER for future use.
       
    22 function initcontainer() {
       
    23   [ "$1" ] || { echo "Error: platform name must be specified"; exit 1; }
       
    24 
       
    25   DFILE="$ROOTDIR/contrib/packaging/docker/$1"
       
    26   [ -f "$DFILE" ] || { echo "Error: docker file $DFILE not found"; exit 1; }
       
    27 
       
    28   CONTAINER="hg-dockerrpm-$1"
       
    29   DBUILDUSER=build
       
    30   (
       
    31     cat $DFILE
       
    32     if [ $(uname) = "Darwin" ] ; then
       
    33         # The builder is using boot2docker on OS X, so we're going to
       
    34         # *guess* the uid of the user inside the VM that is actually
       
    35         # running docker. This is *very likely* to fail at some point.
       
    36         echo RUN useradd $DBUILDUSER -u 1000
       
    37     else
       
    38         echo RUN groupadd $DBUILDUSER -g `id -g` -o
       
    39         echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER -o
       
    40     fi
       
    41   ) | $DOCKER build --build-arg http_proxy --build-arg https_proxy --tag $CONTAINER -
       
    42 }