06aae60b65
This is for the sake of the gitlab-ci runner which does not properly aligns the ownership of the repo it checks out with the UID:GID of our builder user. Reason not yet understood and hard to debug (logging of the runner is incomplete). Work around this issue by disabling safe.directory checks in case the container is called without kas-container as wrapper (means, when it is called without setting "--user=root"). This preserves git's checks for the common interactive case, the more critical one. Reported-by: Ross Burton <ross@burtonini.com> Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
58 lines
1.4 KiB
Bash
Executable File
58 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# kas-isar: sudo update-binfmts --enable && [ -f /proc/sys/fs/binfmt_misc/status ]
|
|
|
|
if mount | grep -q "on / type aufs"; then
|
|
cat <<EOF >&2
|
|
WARNING: Generation of wic images will fail!
|
|
|
|
Your docker host setup uses broken aufs as storage driver. Adjust the docker
|
|
configuration to use a different driver (overlay, overlay2, devicemapper). You
|
|
may also need to update the host distribution (e.g. Debian Jessie -> Stretch).
|
|
|
|
EOF
|
|
fi
|
|
|
|
if [ -z "$USER_ID" ]; then
|
|
# Not a kas-container call
|
|
GOSU=""
|
|
|
|
# Work around gitlab-runner not aligning checked out repo ownership
|
|
# with our builder user
|
|
sudo git config --system safe.directory "*"
|
|
elif [ "$USER_ID" == 0 ]; then
|
|
# We shall run everything as root
|
|
GOSU=""
|
|
else
|
|
GROUP_ID=${GROUP_ID:-$(id -g)}
|
|
|
|
groupmod -o --gid "$GROUP_ID" builder
|
|
usermod -o --uid "$USER_ID" --gid "$GROUP_ID" builder >/dev/null
|
|
chown -R "$USER_ID":"$GROUP_ID" /builder
|
|
|
|
GOSU="gosu builder"
|
|
fi
|
|
|
|
if [ "$PWD" = / ]; then
|
|
cd /builder || exit 1
|
|
fi
|
|
|
|
if [ -n "$1" ]; then
|
|
case "$1" in
|
|
build|checkout|dump|for-all-repos|menu|shell|-*)
|
|
# SC2086: Double quote to prevent globbing and word splitting.
|
|
# shellcheck disable=2086
|
|
exec $GOSU kas "$@"
|
|
;;
|
|
*)
|
|
# SC2086: Double quote to prevent globbing and word splitting.
|
|
# shellcheck disable=2086
|
|
exec $GOSU "$@"
|
|
;;
|
|
esac
|
|
else
|
|
# SC2086: Double quote to prevent globbing and word splitting.
|
|
# shellcheck disable=2086
|
|
exec $GOSU bash
|
|
fi
|