annotate contrib/dockerlib.sh @ 27180:8e7db961535a

addrevision: only use the incoming base if it is a good delta (issue4975) Before this change, the 'lazydeltabase' would blindly build a delta using the base provided by the incoming bundle and try to use it. If that base was far down the revlog, the delta would be seen as "no good" and we would fall back to a full text revision. We now check if the delta is good and fallback to a computing a delta again the tipmost revision otherwise (as we would do without general delta). Later changesets will improve the logic to compute the fallback delta using the general delta logic.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Tue, 01 Dec 2015 16:06:20 -0800
parents 271a802071b7
children 2d437a0f3355
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24968
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
1 #!/bin/sh -eu
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
2
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
3 # This function exists to set up the DOCKER variable and verify that
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
4 # it's the binary we expect. It also verifies that the docker service
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
5 # is running on the system and we can talk to it.
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
6 function checkdocker() {
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
7 if which docker.io >> /dev/null 2>&1 ; then
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
8 DOCKER=docker.io
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
9 elif which docker >> /dev/null 2>&1 ; then
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
10 DOCKER=docker
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
11 else
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
12 echo "Error: docker must be installed"
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
13 exit 1
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
14 fi
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
15
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
16 $DOCKER -h 2> /dev/null | grep -q Jansens && { echo "Error: $DOCKER is the Docking System Tray - install docker.io instead"; exit 1; }
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
17 $DOCKER version | grep -q "^Client version:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; }
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
18 $DOCKER version | grep -q "^Server version:" || { echo "Error: could not get docker server version - check it is running and your permissions"; exit 1; }
80c9e99d68e0 dockerlib: start extracting common functions for setting up docker
Augie Fackler <augie@google.com>
parents:
diff changeset
19 }
24969
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
20
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
21 # Construct a container and leave its name in $CONTAINER for future use.
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
22 function initcontainer() {
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
23 [ "$1" ] || { echo "Error: platform name must be specified"; exit 1; }
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
24
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
25 DFILE="$ROOTDIR/contrib/docker/$1"
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
26 [ -f "$DFILE" ] || { echo "Error: docker file $DFILE not found"; exit 1; }
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
27
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
28 CONTAINER="hg-dockerrpm-$1"
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
29 DBUILDUSER=build
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
30 (
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
31 cat $DFILE
24970
33055069e465 dockerlib: fix initcontainer for boot2docker users
Augie Fackler <augie@google.com>
parents: 24969
diff changeset
32 if [ $(uname) = "Darwin" ] ; then
33055069e465 dockerlib: fix initcontainer for boot2docker users
Augie Fackler <augie@google.com>
parents: 24969
diff changeset
33 # The builder is using boot2docker on OS X, so we're going to
33055069e465 dockerlib: fix initcontainer for boot2docker users
Augie Fackler <augie@google.com>
parents: 24969
diff changeset
34 # *guess* the uid of the user inside the VM that is actually
33055069e465 dockerlib: fix initcontainer for boot2docker users
Augie Fackler <augie@google.com>
parents: 24969
diff changeset
35 # running docker. This is *very likely* to fail at some point.
33055069e465 dockerlib: fix initcontainer for boot2docker users
Augie Fackler <augie@google.com>
parents: 24969
diff changeset
36 echo RUN useradd $DBUILDUSER -u 1000
33055069e465 dockerlib: fix initcontainer for boot2docker users
Augie Fackler <augie@google.com>
parents: 24969
diff changeset
37 else
26888
271a802071b7 dockerlib: allow non-unique uid and gid of $DBUILDUSER (issue4657)
Anton Shestakov <av6@dwimlabs.net>
parents: 24970
diff changeset
38 echo RUN groupadd $DBUILDUSER -g `id -g` --non-unique
271a802071b7 dockerlib: allow non-unique uid and gid of $DBUILDUSER (issue4657)
Anton Shestakov <av6@dwimlabs.net>
parents: 24970
diff changeset
39 echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER --non-unique
24970
33055069e465 dockerlib: fix initcontainer for boot2docker users
Augie Fackler <augie@google.com>
parents: 24969
diff changeset
40 fi
24969
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
41 ) | $DOCKER build --tag $CONTAINER -
227b9b2a57a3 dockerlib: extract initcontainer() method
Augie Fackler <augie@google.com>
parents: 24968
diff changeset
42 }