summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorElan Ruusamäe2021-12-12 20:08:52 (GMT)
committerElan Ruusamäe2021-12-12 20:18:49 (GMT)
commit6569f6a5ddbf050f5d6986ea60610a8202729b5e (patch)
treecdcb2a30474132075e2fed5cfdf2a0d3c209dd9d
parent0d37247d5bdf546fa81cebcbdf9dc7479cddd2d1 (diff)
downloadcleanbuild-6569f6a5ddbf050f5d6986ea60610a8202729b5e.zip
cleanbuild-6569f6a5ddbf050f5d6986ea60610a8202729b5e.tar.gz
Update to use UID/GID of running user if non-root
-rwxr-xr-xbin/cleanbuild-docker.sh18
1 files changed, 14 insertions, 4 deletions
diff --git a/bin/cleanbuild-docker.sh b/bin/cleanbuild-docker.sh
index 5288f30..40ed415 100755
--- a/bin/cleanbuild-docker.sh
+++ b/bin/cleanbuild-docker.sh
@@ -72,7 +72,7 @@ create_container() {
install -d $topdir/logs
# start the container
- if ! have_container "$PACKAGE_NAME"; then
+ if ! have_container "$PACKAGE_NAME"; then
TMPFS_SIZE=$TMPFS \
PACKAGE_NAME=$PACKAGE_NAME \
docker-compose run --rm -d \
@@ -82,11 +82,21 @@ create_container() {
cleanbuild
fi
- notice "Setup the homedir"
+ UID=$(id -u)
+ GID=$(id -g)
+ notice "Setup builder user ($UID:$GID)"
+
docker exec --user=root -w / $name usermod -d $home builder
+ if [ "$UID" -gt 0 ]; then
+ docker exec --user=root -w / $name usermod -u $UID builder
+ fi
+ if [ "$GID" -gt 0 ]; then
+ docker exec --user=root -w / $name groupmod -g $GID builder
+ fi
+
notice "Setup permissions"
- docker exec --user=root -w / $name sh -c "cd $home && chown builder:builder . rpm rpm/logs rpm/BUILD rpm/RPMS .ccache"
+ docker exec --user=root -w / $name sh -c "cd $home && chown builder:builder . rpm rpm/logs rpm/BUILD rpm/RPMS rpm/packages .ccache"
if [ ! -d $topdir/rpm-build-tools ]; then
notice "Initialize rpm-build-tools"
@@ -230,11 +240,11 @@ main() {
$TRACING && set -x
local name="cleanbuild-$PACKAGE_NAME"
- create_container
if $EXEC; then
enter_container
return
fi
+ create_container
package_prepare
package_build
}