File tree Expand file tree Collapse file tree 8 files changed +86
-49
lines changed Expand file tree Collapse file tree 8 files changed +86
-49
lines changed Original file line number Diff line number Diff line change @@ -33,6 +33,8 @@ services:
3333 LE_STAGING : ' true'
3434 FORCE_COLOR : 1
3535 DB_SQLITE_FILE : ' /data/mydb.sqlite'
36+ PUID : 1000
37+ PGID : 1000
3638 volumes :
3739 - npm_data:/data
3840 expose :
Original file line number Diff line number Diff line change @@ -9,6 +9,19 @@ RED='\E[1;31m'
99RESET=' \E[0m'
1010export CYAN BLUE YELLOW RED RESET
1111
12+ PUID=${PUID:- 0}
13+ PGID=${PGID:- 0}
14+
15+ if [[ " $PUID " -ne ' 0' ]] && [ " $PGID " = ' 0' ]; then
16+ # set group id to same as user id,
17+ # the user probably forgot to specify the group id and
18+ # it would be rediculous to intentionally use the root group
19+ # for a non-root user
20+ PGID=$PUID
21+ fi
22+
23+ export PUID PGID
24+
1225log_info () {
1326 echo -e " ${BLUE} ❯ ${CYAN} $1 ${RESET} "
1427}
Original file line number Diff line number Diff line change 55
66. /bin/common.sh
77
8- log_info 'Starting backend ...'
8+ cd /app || exit 1
99
10- if [ "$DEVELOPMENT" == "true" ]; then
11- cd /app || exit 1
12- # If yarn install fails: add --verbose --network-concurrency 1
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'
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
1520else
16- cd /app || exit 1
1721 while :
1822 do
19- s6-setuidgid npmuser bash -c 'export HOME=/tmp/npmuserhome;node --abort_on_uncaught_exception --max_old_space_size=250 index.js'
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
2030 sleep 1
2131 done
2232fi
Original file line number Diff line number Diff line change 88if [ "$DEVELOPMENT" == "true" ]; then
99 . /bin/common.sh
1010 cd /app/frontend || exit 1
11- log_info 'Starting frontend ...'
1211 HOME=/tmp/npmuserhome
1312 export HOME
1413 mkdir -p /app/frontend/dist
15- chown -R npmuser:npmuser /app/frontend/dist
16- # If yarn install fails: add --verbose --network-concurrency 1
17- s6-setuidgid npmuser yarn install
18- exec s6-setuidgid npmuser yarn watch
14+ chown -R "$PUID:$PGID" /app/frontend/dist
15+
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
1925else
2026 exit 0
2127fi
Original file line number Diff line number Diff line change 55
66. /bin/common.sh
77
8- log_info 'Starting nginx ...'
9-
10- exec s6-setuidgid npmuser nginx
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
Original file line number Diff line number Diff line change 33
44set -e
55
6- PUID=${PUID:- 911}
7- PGID=${PGID:- 911}
8-
9- log_info ' Configuring npmuser ...'
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
1011
11- groupmod -g 1000 users || exit 1
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
1219
13- if id -u npmuser; then
14- # user already exists
15- usermod -u " ${PUID} " npmuser || exit 1
16- else
17- # Add npmuser user
18- useradd -u " ${PUID} " -U -d /tmp/npmuserhome -s /bin/false npmuser || exit 1
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 npmuser:npmuser /tmp/npmuserhome
1925fi
20-
21- usermod -G users npmuser || exit 1
22- groupmod -o -g " ${PGID} " npmuser || exit 1
23- # Home for npmuser
24- mkdir -p /tmp/npmuserhome
25- chown -R npmuser:npmuser /tmp/npmuserhome
Original file line number Diff line number Diff line change @@ -9,16 +9,16 @@ log_info 'Setting ownership ...'
99chown root /tmp/nginx
1010
1111# npmuser
12- chown -R npmuser:npmuser /data
13- chown -R npmuser:npmuser /etc/letsencrypt
14- chown -R npmuser:npmuser /run/nginx
15- chown -R npmuser:npmuser /tmp/nginx
16- chown -R npmuser:npmuser /var/cache/nginx
17- chown -R npmuser:npmuser /var/lib/logrotate
18- chown -R npmuser:npmuser /var/lib/nginx
19- chown -R npmuser:npmuser /var/log/nginx
12+ chown -R " $PUID : $PGID " /data \
13+ /etc/letsencrypt \
14+ /run/nginx \
15+ /tmp/nginx \
16+ /var/cache/nginx \
17+ /var/lib/logrotate \
18+ /var/lib/nginx \
19+ /var/log/nginx
2020
2121# Don't chown entire /etc/nginx folder as this causes crashes on some systems
22- chown -R npmuser:npmuser /etc/nginx/nginx
23- chown -R npmuser:npmuser /etc/nginx/nginx.conf
24- chown -R npmuser:npmuser /etc/nginx/conf.d
22+ chown -R " $PUID : $PGID " /etc/nginx/nginx \
23+ /etc/nginx/nginx.conf \
24+ /etc/nginx/conf.d
Original file line number Diff line number Diff line change @@ -10,8 +10,10 @@ echo "-------------------------------------
1010| \| | |_) | |\/| |
1111| |\ | __/| | | |
1212|_| \_|_| |_| |_|
13- -------------------------------------
14- User UID: $( id -u npmuser)
15- User GID: $( id -g npmuser)
16- -------------------------------------
17- "
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
You can’t perform that action at this time.
0 commit comments