Mercurial > hg
annotate contrib/dockerlib.sh @ 29324:b501579147f1
py3: conditionalize cPickle import by adding in util
The cPickle is renamed to _pickle in python3 and this C extension is available
in pickle which was not included in earlier versions. So imports are conditionalized
to import cPickle in py2 and pickle in py3. Moreover the use of pickle in py2 is
switched to cPickle as the C extension is faster. The hack is added in util.py and
the modules import util.pickle
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Sat, 04 Jun 2016 14:38:00 +0530 |
parents | cea1473ba468 |
children | a3ac1ea611ce |
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; } |
27103
2d437a0f3355
docker: match more version of 'hg docker version' (issue4967)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26888
diff
changeset
|
17 $DOCKER version | grep -Eq "^Client( version)?:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; } |
2d437a0f3355
docker: match more version of 'hg docker version' (issue4967)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
26888
diff
changeset
|
18 $DOCKER version | grep -Eq "^Server( version)?:" || { echo "Error: could not get docker server version - check it is running and your permissions"; exit 1; } |
24968
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 |
27245
cea1473ba468
dockerlib: short form for non-unique uid/gid for CentOS 5 compat (issue4977)
Mathias De Maré <mathias.demare@gmail.com>
parents:
27103
diff
changeset
|
38 echo RUN groupadd $DBUILDUSER -g `id -g` -o |
cea1473ba468
dockerlib: short form for non-unique uid/gid for CentOS 5 compat (issue4977)
Mathias De Maré <mathias.demare@gmail.com>
parents:
27103
diff
changeset
|
39 echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER -o |
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 } |