mirror of
https://github.com/vyos/vyos-build.git
synced 2025-10-01 20:28:40 +02:00
The newer Docker versions seem to be a bit more picky when using tools like goso. The container will no longer start if the gosu binary has the setuid root bit set. This change adjusts the container to continue working on recent Docker versions.
36 lines
831 B
Bash
Executable File
36 lines
831 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
USER_NAME="vyos_bld"
|
|
NEW_UID=$(stat -c "%u" .)
|
|
NEW_GID=$(stat -c "%g" .)
|
|
|
|
# Change effective UID to the one specified via "-e GOSU_UID=`id -u $USER`"
|
|
if [ -n "$GOSU_UID" ]; then
|
|
NEW_UID=$GOSU_UID
|
|
fi
|
|
|
|
# Change effective UID to the one specified via "-e GOSU_GID=`id -g $USER`"
|
|
if [ -n "$GOSU_GID" ]; then
|
|
NEW_GID=$GOSU_GID
|
|
fi
|
|
|
|
# Notify user about selected UID/GID
|
|
echo "Current UID/GID: $NEW_UID/$NEW_GID"
|
|
|
|
# Create UNIX group on the fly if it does not exist
|
|
if ! grep -q $NEW_GID /etc/group; then
|
|
groupadd --gid $NEW_GID $USER_NAME
|
|
fi
|
|
|
|
useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME
|
|
sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME
|
|
export HOME=/home/$USER_NAME
|
|
|
|
if [ "$(id -u)" == "0" ]; then
|
|
exec gosu $USER_NAME "$@"
|
|
fi
|
|
|
|
# Execute process
|
|
exec "$@"
|