Merge pull request 'Corrige la perte du compte admin à chaque déploiement : persiste /app/data' (#8) from dev into main
Reviewed-on: #8
This commit was merged in pull request #8.
This commit is contained in:
@@ -6,6 +6,13 @@ services:
|
|||||||
- "${PORT:-5050}:5050"
|
- "${PORT:-5050}:5050"
|
||||||
volumes:
|
volumes:
|
||||||
- forge_projects:/app/projects
|
- forge_projects:/app/projects
|
||||||
|
# Base des comptes créateurs (auth/connection.py, data/users.db) et
|
||||||
|
# clé de session Flask (core/flask_app.py, data/secret_key) —
|
||||||
|
# jusqu'ici ni l'un ni l'autre n'était persisté : chaque déploiement
|
||||||
|
# (nouveau conteneur) repartait d'un data/ vide, donc d'une base de
|
||||||
|
# comptes vide ("premier compte = admin" recommençait à zéro) et
|
||||||
|
# d'une nouvelle clé de session (tout le monde déconnecté).
|
||||||
|
- forge_data:/app/data
|
||||||
environment:
|
environment:
|
||||||
# Réinitialisation de mot de passe par email (voir auth/send_email.py)
|
# Réinitialisation de mot de passe par email (voir auth/send_email.py)
|
||||||
# — laissés vides ici tant qu'ils ne sont pas définis dans le .env du
|
# — laissés vides ici tant qu'ils ne sont pas définis dans le .env du
|
||||||
@@ -19,3 +26,4 @@ services:
|
|||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
forge_projects:
|
forge_projects:
|
||||||
|
forge_data:
|
||||||
|
|||||||
+13
-8
@@ -1,14 +1,19 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Un volume Docker nommé (ex: forge_projects, voir docker-compose.prod.yml)
|
# Un volume Docker nommé (forge_projects/forge_data, voir
|
||||||
# est créé par Docker lui-même, propriété de root, AVANT que le conteneur ne
|
# docker-compose.prod.yml) est créé par Docker lui-même, propriété de
|
||||||
# démarre — le "chown" fait au build de l'image (voir Dockerfile) n'a donc
|
# root, AVANT que le conteneur ne démarre — le "chown" fait au build de
|
||||||
# aucun effet dessus une fois monté par-dessus /app/projects. On corrige ici,
|
# l'image (voir Dockerfile) n'a donc aucun effet dessus une fois monté
|
||||||
# à chaque démarrage (idempotent, sans risque à répéter), puis on abandonne
|
# par-dessus /app/projects (les jeux) et /app/data (comptes créateurs,
|
||||||
# les privilèges root pour lancer le vrai serveur en tant qu'utilisateur
|
# 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.
|
# "forge" — ce script tourne donc brièvement en root, uniquement pour ça.
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
mkdir -p /app/projects
|
mkdir -p /app/projects /app/data
|
||||||
chown -R forge:forge /app/projects
|
chown -R forge:forge /app/projects /app/data
|
||||||
|
|
||||||
exec su forge -s /bin/sh -c "$*"
|
exec su forge -s /bin/sh -c "$*"
|
||||||
|
|||||||
Reference in New Issue
Block a user