@@ -8,28 +8,25 @@ PGID=${PGID:-1000}
88CURRENT_UID=$( id -u appuser)
99CURRENT_GID=$( id -g appuser)
1010
11- # Only modify user/group if they're different from current
11+ # Adjust IDs if needed
1212if [ " $PUID " != " $CURRENT_UID " ] || [ " $PGID " != " $CURRENT_GID " ]; then
13- echo " Updating user appuser to UID:$PUID and GID:$PGID "
14-
15- # Update group ID if needed
16- if [ " $PGID " != " $CURRENT_GID " ]; then
17- groupmod -g " $PGID " appuser
18- fi
19-
20- # Update user ID if needed
21- if [ " $PUID " != " $CURRENT_UID " ]; then
22- usermod -u " $PUID " appuser
23- fi
24-
25- # Fix ownership of app directory
26- chown -R appuser:appuser /app
27-
28- # Fix ownership of mounted volumes if they exist
29- [ -d /app/data ] && chown -R appuser:appuser /app/data
30- [ -d /app/backups ] && chown -R appuser:appuser /app/backups
31- [ -d /app/logs ] && chown -R appuser:appuser /app/logs
13+ echo " Updating user appuser to UID:$PUID GID:$PGID "
14+ [ " $PGID " != " $CURRENT_GID " ] && groupmod -g " $PGID " appuser
15+ [ " $PUID " != " $CURRENT_UID " ] && usermod -u " $PUID " appuser
3216fi
3317
34- # Switch to appuser and execute the original command
18+ # Always ensure directories exist and are owned correctly (important for SQLite write access)
19+ for d in /app/data /app/backups /app/logs; do
20+ mkdir -p " $d "
21+ chown -R appuser:appuser " $d " 2> /dev/null || true
22+ chmod 775 " $d " 2> /dev/null || true
23+ done
24+
25+ # Ensure app code ownership (helps when mounting volumes)
26+ chown -R appuser:appuser /app 2> /dev/null || true
27+
28+ echo " Directory permissions:"
29+ ls -ld /app/data /app/backups /app/logs 2> /dev/null || true
30+
31+ echo " Switching to appuser..."
3532exec gosu appuser " $@ "
0 commit comments