Skip to content

Commit 4a86bb4

Browse files
committed
Different approach, always create npmuser
even if the user id is zero, and then we'll always use it
1 parent dad8561 commit 4a86bb4

File tree

6 files changed

+33
-61
lines changed

6 files changed

+33
-61
lines changed

docker/rootfs/etc/nginx/nginx.conf

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# run nginx in foreground
22
daemon off;
33
pid /run/nginx/nginx.pid;
4+
user npmuser;
45

56
# Set number of worker processes automatically based on number of CPU cores.
67
worker_processes auto;

docker/rootfs/etc/s6-overlay/s6-rc.d/backend/run

+6-17
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,15 @@ set -e
77

88
cd /app || exit 1
99

10-
if [ "${DEVELOPMENT:-}" = "true" ]; then
11-
if [ "$PUID" = '0' ]; then
12-
log_info 'Starting backend development ...'
13-
yarn install
14-
node --max_old_space_size=250 --abort_on_uncaught_exception node_modules/nodemon/bin/nodemon.js
15-
else
16-
log_info "Starting backend development as npmuser ($PUID) ..."
17-
s6-setuidgid npmuser yarn install
18-
exec s6-setuidgid npmuser bash -c 'export HOME=/tmp/npmuserhome;node --max_old_space_size=250 --abort_on_uncaught_exception node_modules/nodemon/bin/nodemon.js'
19-
fi
10+
log_info 'Starting backend ...'
11+
12+
if [ "${DEVELOPMENT:-}" = 'true' ]; then
13+
s6-setuidgid npmuser yarn install
14+
exec s6-setuidgid npmuser bash -c 'export HOME=/tmp/npmuserhome;node --max_old_space_size=250 --abort_on_uncaught_exception node_modules/nodemon/bin/nodemon.js'
2015
else
2116
while :
2217
do
23-
if [ "$PUID" = '0' ]; then
24-
log_info 'Starting backend ...'
25-
node --abort_on_uncaught_exception --max_old_space_size=250 index.js
26-
else
27-
log_info "Starting backend as npmuser ($PUID) ..."
28-
s6-setuidgid npmuser bash -c 'export HOME=/tmp/npmuserhome;node --abort_on_uncaught_exception --max_old_space_size=250 index.js'
29-
fi
18+
s6-setuidgid npmuser bash -c 'export HOME=/tmp/npmuserhome;node --abort_on_uncaught_exception --max_old_space_size=250 index.js'
3019
sleep 1
3120
done
3221
fi

docker/rootfs/etc/s6-overlay/s6-rc.d/frontend/run

+4-10
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,17 @@ set -e
55

66
# This service is DEVELOPMENT only.
77

8-
if [ "$DEVELOPMENT" == "true" ]; then
8+
if [ "$DEVELOPMENT" = 'true' ]; then
99
. /bin/common.sh
1010
cd /app/frontend || exit 1
1111
HOME=/tmp/npmuserhome
1212
export HOME
1313
mkdir -p /app/frontend/dist
1414
chown -R "$PUID:$PGID" /app/frontend/dist
1515

16-
if [ "$PUID" = '0' ]; then
17-
log_info 'Starting frontend ...'
18-
yarn install
19-
exec yarn watch
20-
else
21-
log_info "Starting frontend as npmuser ($PUID) ..."
22-
s6-setuidgid npmuser yarn install
23-
exec s6-setuidgid npmuser yarn watch
24-
fi
16+
log_info 'Starting frontend ...'
17+
s6-setuidgid npmuser yarn install
18+
exec s6-setuidgid npmuser yarn watch
2519
else
2620
exit 0
2721
fi

docker/rootfs/etc/s6-overlay/s6-rc.d/nginx/run

+2-7
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,5 @@ set -e
55

66
. /bin/common.sh
77

8-
if [ "$PUID" = '0' ]; then
9-
log_info 'Starting nginx ...'
10-
exec nginx
11-
else
12-
log_info "Starting nginx as npmuser ($PUID) ..."
13-
exec s6-setuidgid npmuser nginx
14-
fi
8+
log_info 'Starting nginx ...'
9+
exec s6-setuidgid npmuser nginx

docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/10-npmuser.sh

+13-18
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,18 @@
33

44
set -e
55

6-
if [ "$PUID" = '0' ]; then
7-
log_info 'Skipping npmuser configuration'
8-
else
9-
log_info 'Configuring npmuser ...'
10-
groupmod -g 1000 users || exit 1
11-
12-
if id -u npmuser; then
13-
# user already exists
14-
usermod -u "$PUID" npmuser || exit 1
15-
else
16-
# Add npmuser user
17-
useradd -u "$PUID" -U -d /tmp/npmuserhome -s /bin/false npmuser || exit 1
18-
fi
6+
log_info 'Configuring npmuser ...'
197

20-
usermod -G users npmuser || exit 1
21-
groupmod -o -g "$PGID" npmuser || exit 1
22-
# Home for npmuser
23-
mkdir -p /tmp/npmuserhome
24-
chown -R "$PUID:$PGID" /tmp/npmuserhome
8+
if id -u npmuser; then
9+
# user already exists
10+
usermod -u "$PUID" npmuser || exit 1
11+
else
12+
# Add npmuser user
13+
useradd -o -u "$PUID" -U -d /tmp/npmuserhome -s /bin/false npmuser || exit 1
2514
fi
15+
16+
usermod -G "$PGID" npmuser || exit 1
17+
groupmod -o -g "$PGID" npmuser || exit 1
18+
# Home for npmuser
19+
mkdir -p /tmp/npmuserhome
20+
chown -R "$PUID:$PGID" /tmp/npmuserhome

docker/rootfs/etc/s6-overlay/s6-rc.d/prepare/90-banner.sh

+7-9
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,15 @@
33

44
set -e
55

6-
echo
7-
echo "-------------------------------------
6+
echo "
7+
-------------------------------------
88
_ _ ____ __ __
99
| \ | | _ \| \/ |
1010
| \| | |_) | |\/| |
1111
| |\ | __/| | | |
1212
|_| \_|_| |_| |_|
13-
-------------------------------------"
14-
if [[ "$PUID" -ne '0' ]]; then
15-
echo "User UID: $(id -u npmuser)"
16-
echo "User GID: $(id -g npmuser)"
17-
echo "-------------------------------------"
18-
fi
19-
echo
13+
-------------------------------------
14+
User ID: $PUID
15+
Group ID: $PGID
16+
-------------------------------------
17+
"

0 commit comments

Comments
 (0)