Mercurial > hg
view contrib/dockerlib.sh @ 26445:f134fb33c906
streamclone: move streaming clone logic from localrepo
This is the last remnants of streaming clone code in localrepo.py.
This is a mostly mechanical transplant of code to a new file. Only a
rewrite of "self" to "repo" was performed. The code will be
significantly refactored in upcoming patches. So don't scrutinize it too
closely.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Fri, 02 Oct 2015 21:39:04 -0700 |
parents | 33055069e465 |
children | 271a802071b7 |
line wrap: on
line source
#!/bin/sh -eu # This function exists to set up the DOCKER variable and verify that # it's the binary we expect. It also verifies that the docker service # is running on the system and we can talk to it. function checkdocker() { if which docker.io >> /dev/null 2>&1 ; then DOCKER=docker.io elif which docker >> /dev/null 2>&1 ; then DOCKER=docker else echo "Error: docker must be installed" exit 1 fi $DOCKER -h 2> /dev/null | grep -q Jansens && { echo "Error: $DOCKER is the Docking System Tray - install docker.io instead"; exit 1; } $DOCKER version | grep -q "^Client version:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; } $DOCKER version | grep -q "^Server version:" || { echo "Error: could not get docker server version - check it is running and your permissions"; exit 1; } } # Construct a container and leave its name in $CONTAINER for future use. function initcontainer() { [ "$1" ] || { echo "Error: platform name must be specified"; exit 1; } DFILE="$ROOTDIR/contrib/docker/$1" [ -f "$DFILE" ] || { echo "Error: docker file $DFILE not found"; exit 1; } CONTAINER="hg-dockerrpm-$1" DBUILDUSER=build ( cat $DFILE if [ $(uname) = "Darwin" ] ; then # The builder is using boot2docker on OS X, so we're going to # *guess* the uid of the user inside the VM that is actually # running docker. This is *very likely* to fail at some point. echo RUN useradd $DBUILDUSER -u 1000 else echo RUN groupadd $DBUILDUSER -g `id -g` echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER fi ) | $DOCKER build --tag $CONTAINER - }