D3758: packaging: consistently create build user in Dockerfiles
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Mon Jun 25 11:20:56 EDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG11eda1f1b6e7: packaging: consistently create build user in Dockerfiles (authored by indygreg, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D3758?vs=9110&id=9284
REVISION DETAIL
https://phab.mercurial-scm.org/D3758
AFFECTED FILES
contrib/packaging/docker/centos5
contrib/packaging/docker/centos6
contrib/packaging/docker/centos7
contrib/packaging/docker/debian.template
contrib/packaging/docker/fedora20
contrib/packaging/docker/fedora21
contrib/packaging/docker/ubuntu.template
contrib/packaging/dockerdeb
contrib/packaging/dockerlib.sh
contrib/packaging/dockerrpm
CHANGE DETAILS
diff --git a/contrib/packaging/dockerrpm b/contrib/packaging/dockerrpm
--- a/contrib/packaging/dockerrpm
+++ b/contrib/packaging/dockerrpm
@@ -16,6 +16,8 @@
$ROOTDIR/contrib/packaging/buildrpm --rpmbuilddir $RPMBUILDDIR --prepare $*
DSHARED=/mnt/shared
+DBUILDUSER=build
+
$DOCKER run -e http_proxy -e https_proxy -u $DBUILDUSER --rm -v $RPMBUILDDIR:$DSHARED $CONTAINER \
rpmbuild --define "_topdir $DSHARED" -ba $DSHARED/SPECS/mercurial.spec --clean
diff --git a/contrib/packaging/dockerlib.sh b/contrib/packaging/dockerlib.sh
--- a/contrib/packaging/dockerlib.sh
+++ b/contrib/packaging/dockerlib.sh
@@ -26,17 +26,5 @@
[ -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` -o
- echo RUN useradd $DBUILDUSER -u `id -u` -g $DBUILDUSER -o
- fi
- ) | $DOCKER build --build-arg http_proxy --build-arg https_proxy --tag $CONTAINER -
+ cat $DFILE | $DOCKER build --build-arg http_proxy --build-arg https_proxy --tag $CONTAINER -
}
diff --git a/contrib/packaging/dockerdeb b/contrib/packaging/dockerdeb
--- a/contrib/packaging/dockerdeb
+++ b/contrib/packaging/dockerdeb
@@ -22,6 +22,8 @@
# container and hope it's writable. Whee.
dn=$(basename $ROOTDIR)
+DBUILDUSER=build
+
if [ $(uname) = "Darwin" ] ; then
$DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
sh -c "cd /mnt/$dn && make clean && make local"
diff --git a/contrib/packaging/docker/ubuntu.template b/contrib/packaging/docker/ubuntu.template
--- a/contrib/packaging/docker/ubuntu.template
+++ b/contrib/packaging/docker/ubuntu.template
@@ -1,4 +1,8 @@
FROM ubuntu:__CODENAME__
+
+RUN groupadd -g 1000 build && \
+ useradd -u 1000 -g 1000 -s /bin/bash -d /build -m build
+
RUN apt-get update && apt-get install -y \
build-essential \
debhelper \
diff --git a/contrib/packaging/docker/fedora21 b/contrib/packaging/docker/fedora21
--- a/contrib/packaging/docker/fedora21
+++ b/contrib/packaging/docker/fedora21
@@ -1,4 +1,8 @@
FROM fedora:21
+
+RUN groupadd -g 1000 build && \
+ useradd -u 1000 -g 1000 -s /bin/bash -d /build -m build
+
RUN yum install -y \
gcc \
gettext \
diff --git a/contrib/packaging/docker/fedora20 b/contrib/packaging/docker/fedora20
--- a/contrib/packaging/docker/fedora20
+++ b/contrib/packaging/docker/fedora20
@@ -1,4 +1,8 @@
FROM fedora:20
+
+RUN groupadd -g 1000 build && \
+ useradd -u 1000 -g 1000 -s /bin/bash -d /build -m build
+
RUN yum install -y \
gcc \
gettext \
diff --git a/contrib/packaging/docker/debian.template b/contrib/packaging/docker/debian.template
--- a/contrib/packaging/docker/debian.template
+++ b/contrib/packaging/docker/debian.template
@@ -1,4 +1,8 @@
FROM debian:__CODENAME__
+
+RUN groupadd -g 1000 build && \
+ useradd -u 1000 -g 1000 -s /bin/bash -d /build -m build
+
RUN apt-get update && apt-get install -y \
build-essential \
debhelper \
diff --git a/contrib/packaging/docker/centos7 b/contrib/packaging/docker/centos7
--- a/contrib/packaging/docker/centos7
+++ b/contrib/packaging/docker/centos7
@@ -1,4 +1,8 @@
FROM centos:centos7
+
+RUN groupadd -g 1000 build && \
+ useradd -u 1000 -g 1000 -s /bin/bash -d /build -m build
+
RUN yum install -y \
gcc \
gettext \
diff --git a/contrib/packaging/docker/centos6 b/contrib/packaging/docker/centos6
--- a/contrib/packaging/docker/centos6
+++ b/contrib/packaging/docker/centos6
@@ -1,4 +1,8 @@
FROM centos:centos6
+
+RUN groupadd -g 1000 build && \
+ useradd -u 1000 -g 1000 -s /bin/bash -d /build -m build
+
RUN yum install -y \
gcc \
gettext \
diff --git a/contrib/packaging/docker/centos5 b/contrib/packaging/docker/centos5
--- a/contrib/packaging/docker/centos5
+++ b/contrib/packaging/docker/centos5
@@ -1,4 +1,8 @@
FROM centos:centos5
+
+RUN groupadd -g 1000 build && \
+ useradd -u 1000 -g 1000 -s /bin/bash -d /build -m build
+
RUN \
sed -i 's/^mirrorlist/#mirrorlist/' /etc/yum.repos.d/*.repo && \
sed -i 's/^#\(baseurl=\)http:\/\/mirror.centos.org\/centos/\1http:\/\/vault.centos.org/' /etc/yum.repos.d/*.repo && \
To: indygreg, #hg-reviewers, durin42
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list