Provisionner le rôle applicatif à chaque docker compose up
Le rôle planflow_app n etait créé qu à la première initialisation du volume : une base existante au rôle absent (ou au mot de passe changé) bloquait l app en échec P1000 sans remède automatique. Ajouter un service db-init, idempotent, qui rejoue docker/init-app-role.sh à chaque up — branche ELSE re-synchronisant le mot de passe — avant que l app ne démarre.
This commit is contained in:
1 parent
f4e3608d72
commit
2c3c67b949
3 files changed
+44
-4
No files matched your search
@@ -41,6 +41,30 @@ services:
|
||||
ports:
|
||||
- '${POSTGRES_PORT:-55432}:5432'
|
||||
|
||||
# Provisionne le rôle applicatif à chaude occurrence de `up`, pas seulement à
|
||||
# la première initialisation du volume : inversement, une base existante dont
|
||||
# le rôle est absent (ou dont le mot de passe a changé) laisserait l'app en
|
||||
# échec d'authentification P1000 sans recours autre que du SQL à la main.
|
||||
# Idempotent : rejouable autant de fois que nécessaire.
|
||||
db-init:
|
||||
image: postgres:16-alpine
|
||||
restart: 'no'
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-planflow}
|
||||
PGPASSWORD: ${POSTGRES_PASSWORD:-planflow-interne}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-planflow}
|
||||
APP_DB_USER: ${APP_DB_USER:-planflow_app}
|
||||
APP_DB_PASSWORD: ${APP_DB_PASSWORD:-planflow-app-interne}
|
||||
PGHOST: db
|
||||
volumes:
|
||||
- ./docker/init-app-role.sh:/docker-entrypoint-initdb.d/10-init-app-role.sh:ro
|
||||
command: ['sh', '/docker-entrypoint-initdb.d/10-init-app-role.sh']
|
||||
networks:
|
||||
- interne
|
||||
|
||||
app:
|
||||
build:
|
||||
context: .
|
||||
@@ -48,6 +72,8 @@ services:
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
db-init:
|
||||
condition: service_completed_successfully
|
||||
environment:
|
||||
NODE_ENV: production
|
||||
# Le compte applicatif, **pas** le superutilisateur d'amorçage : un
|
||||
|
||||
Reference in new issue
Block a user