From e8d14bdc608e352b69d10c8a1b0ef817a39a1139 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Tue, 14 May 2019 01:16:40 +0200 Subject: [PATCH] Support build as user (#405) * Support build as user * Update enter.sh * Update Dockerfile * Update enter.sh * Update entry.sh --- Dockerfile | 2 +- scripts/enter.sh | 5 ++++- scripts/entry.sh | 11 ++++++++++- 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0c92a57e5..0739da509 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ # Build Tools RUN apt-get update && apt-get install -y --no-install-recommends \ - wget patch vim cpio python unzip rsync bc bzip2 ncurses-dev \ + wget patch vim cpio python unzip rsync bc bzip2 ncurses-dev sudo \ git make g++ file perl bash binutils locales qemu-utils bison flex \ && rm -rf /var/lib/apt/lists/* diff --git a/scripts/enter.sh b/scripts/enter.sh index c330c0703..39885af9f 100755 --- a/scripts/enter.sh +++ b/scripts/enter.sh @@ -2,4 +2,7 @@ modprobe overlayfs docker build -t hassbuildroot . -docker run -it --rm --privileged -v "$(pwd):/build" -v "${CACHE_DIR:=$HOME/hassos-cache}:/cache" hassbuildroot bash +docker run -it --rm --privileged \ + -v "$(pwd):/build" -v "${CACHE_DIR:=$HOME/hassos-cache}:/cache" \ + -e BUILDER_UID="$(id -u)" -e BUILDER_GID="$(id -g)" \ + hassbuildroot bash diff --git a/scripts/entry.sh b/scripts/entry.sh index f14ac2269..9e919fcc6 100755 --- a/scripts/entry.sh +++ b/scripts/entry.sh @@ -1,12 +1,21 @@ #!/bin/bash set -e +USER="root" + # Run dockerd dockerd -s vfs &> /dev/null & +# Setup local user +if [ "${BUILDER_UID:0}" -ne 0 ] && [ "${BUILDER_GID:0}" -ne 0 ]; then + groupadd -g "${BUILDER_GID}" builder + useradd -m -u "${BUILDER_UID}" -g "${BUILDER_GID}" -G docker builder + USER="builder" +fi + if CMD="$(command -v "$1")"; then shift - exec "$CMD" "$@" + sudo -H -u ${USER} "$CMD" "$@" else echo "Command not found: $1" exit 1