diff options
author | Elan Ruusamäe | 2021-12-12 20:08:52 (GMT) |
---|---|---|
committer | Elan Ruusamäe | 2021-12-12 20:18:49 (GMT) |
commit | 6569f6a5ddbf050f5d6986ea60610a8202729b5e (patch) | |
tree | cdcb2a30474132075e2fed5cfdf2a0d3c209dd9d | |
parent | 0d37247d5bdf546fa81cebcbdf9dc7479cddd2d1 (diff) | |
download | cleanbuild-6569f6a5ddbf050f5d6986ea60610a8202729b5e.zip cleanbuild-6569f6a5ddbf050f5d6986ea60610a8202729b5e.tar.gz |
Update to use UID/GID of running user if non-root
-rwxr-xr-x | bin/cleanbuild-docker.sh | 18 |
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 } |