-
-
Notifications
You must be signed in to change notification settings - Fork 360
Expand file tree
/
Copy pathdocker-entrypoint.sh
More file actions
executable file
·47 lines (42 loc) · 1.76 KB
/
docker-entrypoint.sh
File metadata and controls
executable file
·47 lines (42 loc) · 1.76 KB
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
37
38
39
40
41
42
43
44
45
46
#!/bin/bash -e
# Run last-minute package installs, DEPRECATED
if [ -n "$SB_APT_PACKAGES" ]; then
if [ "$UID" == "0" ]; then
if [ -n "$SB_APT_SYNC" ]; then
apt update -y
apt install -y $SB_APT_PACKAGES
else
(apt update -y && apt install -y $SB_APT_PACKAGES) &
fi
else
echo "Cannot install packages selected via SB_APT_PACKAGES unless run as root"
fi
fi
# If a /space/CONTAINER_BOOT.md file exists, execute it as a bash script upon boot
if [ -f "/space/CONTAINER_BOOT.md" ]; then
echo "Executing CONTAINER_BOOT.md script"
bash /space/CONTAINER_BOOT.md &
fi
# Check if UID and GID are passed as environment variables, if not, extract from the space folder owner
if [ -z "$PUID" ] && [ "$UID" == "0" ] ; then
# Get the UID of the folder owner
PUID=$(stat -c "%u" "$SB_FOLDER")
echo "Will run SilverBullet with UID $PUID, inferred from the owner of $SB_FOLDER (set PUID environment variable to override)"
fi
if [ -z "$PGID" ]; then
# Get the GID of the folder owner
PGID=$(stat -c "%g" "$SB_FOLDER")
fi
if [ "$PUID" == "0" ] || [ "$UID" != "0" ]; then
# Will run SilverBullet as default user
/silverbullet $@
else
# Create silverbullet user and group ad-hoc mapped to PUID and PGID
getent group $PGID &> /dev/null || groupadd -g $PGID silverbullet
getent passwd $PUID &> /dev/null || useradd -M -u $PUID -g $PGID silverbullet
args="$@"
# And run via su as requested PUID, usually this will be 'silverbullet' but if a user with this idea already exists, we will use that
USERNAME=$(getent passwd $PUID | cut -d ":" -f 1)
echo "Running SilverBullet as $USERNAME (configured as PUID $PUID and PGID $PGID)"
su $USERNAME -s /bin/bash -c "/silverbullet $args"
fi