##// END OF EJS Templates
dockerrpm: run docker build process as the current user, not as root...
Mads Kiilerich -
r22440:cf7b5c01 default
parent child Browse files
Show More
@@ -1,29 +1,35 b''
1 1 #!/bin/bash -e
2 2
3 3 BUILDDIR=$(dirname $0)
4 4 ROOTDIR=$(cd $BUILDDIR/..; pwd)
5 5
6 6 if which docker.io >> /dev/null 2>&1 ; then
7 7 DOCKER=docker.io
8 8 elif which docker >> /dev/null 2>&1 ; then
9 9 DOCKER=docker
10 10 else
11 11 echo "Error: docker must be installed"
12 12 exit 1
13 13 fi
14 14
15 15 $DOCKER -h 2> /dev/null | grep -q Jansens && { echo "Error: $DOCKER is the Docking System Tray - install docker.io instead"; exit 1; }
16 16 $DOCKER version | grep -q "^Client version:" || { echo "Error: unexpected output from \"$DOCKER version\""; exit 1; }
17 17 $DOCKER version | grep -q "^Server version:" || { echo "Error: could not get docker server version - check it is running and your permissions"; exit 1; }
18 18
19 19 PLATFORM="$1"
20 20 [ "$PLATFORM" ] || { echo "Error: platform name must be specified"; exit 1; }
21 21
22 22 DFILE="$ROOTDIR/contrib/docker/$PLATFORM"
23 23 [ -f "$DFILE" ] || { echo "Error: docker file $DFILE not found"; exit 1; }
24 24
25 25 CONTAINER="hg-dockerrpm-$PLATFORM"
26 26
27 $DOCKER build --tag $CONTAINER - < $DFILE
28 $DOCKER run --rm -v $ROOTDIR:/hg $CONTAINER bash -c \
27 DBUILDUSER=build
28 (
29 cat $DFILE
30 echo RUN groupadd $DBUILDUSER -g `id -g`
31 echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER
32 ) | $DOCKER build --tag $CONTAINER -
33
34 $DOCKER run -u $DBUILDUSER --rm -v $ROOTDIR:/hg $CONTAINER bash -c \
29 35 "cp -a hg hg-build; cd hg-build; make clean local $PLATFORM; cp packages/$PLATFORM/* /hg/packages/$PLATFORM/"
General Comments 0
You need to be logged in to leave comments. Login now