#!/bin/sh # Un volume Docker nommé (forge_projects/forge_data, voir # docker-compose.prod.yml) est créé par Docker lui-même, propriété de # root, AVANT que le conteneur ne démarre — le "chown" fait au build de # l'image (voir Dockerfile) n'a donc aucun effet dessus une fois monté # par-dessus /app/projects (les jeux) et /app/data (comptes créateurs, # data/users.db, et clé de session Flask, data/secret_key — voir # auth/connection.py, core/flask_app.py ; SANS ce volume, chaque nouveau # déploiement repartait d'un /app/data vide : base de comptes vidée, # nouvelle clé de session à chaque fois). On corrige ici, à chaque # démarrage (idempotent, sans risque à répéter), puis on abandonne les # privilèges root pour lancer le vrai serveur en tant qu'utilisateur # "forge" — ce script tourne donc brièvement en root, uniquement pour ça. set -e mkdir -p /app/projects /app/data chown -R forge:forge /app/projects /app/data exec su forge -s /bin/sh -c "$*"