summaryrefslogtreecommitdiff
path: root/docker/entrypoint.sh
blob: ed6ca7d9c482a1df73587205905c15ea3d79b3cf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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

# libvyosconfig depends on OCaml/OPAM so we make sure
# we can use it
echo "eval \$(opam env --root=/opt/opam --set-root)" >> /etc/skel/.bashrc

useradd --shell /bin/bash --uid $NEW_UID --gid $NEW_GID --non-unique --create-home $USER_NAME
usermod --append --groups sudo $USER_NAME
sudo chown $NEW_UID:$NEW_GID /home/$USER_NAME
export HOME=/home/$USER_NAME

# Execute process
exec /usr/sbin/gosu $USER_NAME "$@"