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:
33
33
LE_STAGING : ' true'
34
34
FORCE_COLOR : 1
35
35
DB_SQLITE_FILE : ' /data/mydb.sqlite'
36
+ PUID : 1000
37
+ PGID : 1000
36
38
volumes :
37
39
- npm_data:/data
38
40
expose :
Original file line number Diff line number Diff line change @@ -9,6 +9,19 @@ RED='\E[1;31m'
9
9
RESET=' \E[0m'
10
10
export CYAN BLUE YELLOW RED RESET
11
11
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
+
12
25
log_info () {
13
26
echo -e " ${BLUE} ❯ ${CYAN} $1 ${RESET} "
14
27
}
Original file line number Diff line number Diff line change 5
5
6
6
. /bin/common.sh
7
7
8
- log_info 'Starting backend ...'
8
+ cd /app || exit 1
9
9
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
15
20
else
16
- cd /app || exit 1
17
21
while :
18
22
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
20
30
sleep 1
21
31
done
22
32
fi
Original file line number Diff line number Diff line change 8
8
if [ "$DEVELOPMENT" == "true" ]; then
9
9
. /bin/common.sh
10
10
cd /app/frontend || exit 1
11
- log_info 'Starting frontend ...'
12
11
HOME=/tmp/npmuserhome
13
12
export HOME
14
13
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
19
25
else
20
26
exit 0
21
27
fi
Original file line number Diff line number Diff line change 5
5
6
6
. /bin/common.sh
7
7
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 3
3
4
4
set -e
5
5
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
10
11
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
12
19
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
19
25
fi
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 ...'
9
9
chown root /tmp/nginx
10
10
11
11
# 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
20
20
21
21
# 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 "-------------------------------------
10
10
| \| | |_) | |\/| |
11
11
| |\ | __/| | | |
12
12
|_| \_|_| |_| |_|
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