docker: Align also caller's group ID with container

This ensures that both UID and GID of the builder user inside the
container is aligned with the caller of kas-docker - or that of "docker
run" when "-e GROUP_ID=..." is specified.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
Jan Kiszka 2018-11-23 18:16:59 +01:00 committed by Daniel Wagner
parent fe344f93f1
commit 90ae592ff1
2 changed files with 8 additions and 3 deletions

View File

@ -12,6 +12,7 @@ EOF
fi
USER_ID=${USER_ID:-30000}
GROUP_ID=${GROUP_ID:-30000}
if [ $USER_ID == 0 ]; then
# We shall run everything as root
@ -19,9 +20,13 @@ if [ $USER_ID == 0 ]; then
GOSU=""
else
if ! id $USER_ID >/dev/null 2>&1; then
if ! grep -q "^builder:" /etc/group; then
groupadd -o --gid $GROUP_ID builder
fi
if ! id builder >/dev/null 2>&1; then
# Create a non-root user that will perform the actual build
useradd --uid $USER_ID --create-home --home-dir /builder builder
useradd -o --uid $USER_ID --gid $GROUP_ID --create-home \
--home-dir /builder builder
fi
GOSU="gosu builder"

View File

@ -128,7 +128,7 @@ trace mkdir -p ${KAS_WORK_DIR}
DOCKER_ARGS="-v ${REPO_DIR}:/repo:ro \
-v ${KAS_WORK_DIR}:/work:rw --workdir=/work \
-e USER_ID=$(id -u) --rm"
-e USER_ID=$(id -u) -e GROUP_ID=$(id -g) --rm"
if [ -t 1 ]; then
DOCKER_ARGS="${DOCKER_ARGS} -t -i"