Fix : docker statrtup crash 1
This commit is contained in:
26
docker-entrypoint.sh
Executable file
26
docker-entrypoint.sh
Executable file
@@ -0,0 +1,26 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Aligne la propriété du répertoire de données avant de lâcher les privilèges.
|
||||
#
|
||||
# /app/data est un bind mount : le `chown` fait au build ne sert à rien, il est
|
||||
# masqué dès que Docker monte le répertoire de l'hôte par-dessus. Or Docker crée
|
||||
# ce répertoire en root:root quand il n'existe pas, et le serveur tourne sous
|
||||
# l'utilisateur `node` — SQLite échoue alors avec « unable to open database file ».
|
||||
|
||||
set -e
|
||||
|
||||
if [ "$(id -u)" = "0" ]; then
|
||||
mkdir -p /app/data
|
||||
|
||||
# Uniquement si nécessaire : sur un volume nommé la propriété est déjà bonne,
|
||||
# et un chown -R inutile ferait du bruit à chaque démarrage.
|
||||
if [ "$(stat -c %u /app/data)" != "$(id -u node)" ]; then
|
||||
echo "entrypoint: alignement de /app/data sur l'utilisateur node"
|
||||
chown -R node:node /app/data
|
||||
fi
|
||||
|
||||
exec su-exec node "$@"
|
||||
fi
|
||||
|
||||
# Un `user:` explicite dans le compose court-circuite la bascule : on exécute tel quel.
|
||||
exec "$@"
|
||||
Reference in New Issue
Block a user