Files
pta/docker-compose.yml
PTA 4201894e28 V7.10 — Tableau de bord, guide, semaine type et enveloppe de formation
Reprise dans le répertoire de production du travail mené dans le worktree
ux-service-enfance :

- tableau de bord Service Enfance (dashboard.php) et navigation regroupée ;
- guide d'utilisation (faq.php) accessible depuis toute la navigation ;
- éditeur de semaine type mis en avant sur l'écran de saisie ;
- droit à l'enveloppe de formation par agent, en remplacement de la case
  « formation déjà prévue dans la répartition annuelle » ;
- correctif de « [object Object] » sur les cartes de quota du PTA ;
- motif de travail par défaut à la saisie, heures travaillées complètes
  dans les PDF.

Le docker-compose.yml de production est conservé : celui du worktree décrit
une pile de test (conteneurs et volume suffixés « test », ports 9080/9081),
qui aurait fait redémarrer l'application sur un volume MariaDB vide.

Les migrations database/migration_v7_9*.sql sont obligatoires ; le service
db-migrate les applique au déploiement.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-17 16:53:04 +02:00

122 lines
3.5 KiB
YAML

services:
db:
image: mariadb:11.4
container_name: pta-db
restart: unless-stopped
environment:
MARIADB_DATABASE: ${DB_NAME:-pta}
MARIADB_USER: ${DB_USER:-pta}
MARIADB_PASSWORD: ${DB_PASSWORD:-pta}
MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-pta}
TZ: ${TZ:-Europe/Paris}
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
volumes:
- mariadb_data:/var/lib/mysql
# Ce fichier n'est exécuté QUE lors de l'initialisation d'un volume vide.
- ./database/pta_prod_schema_mariadb.sql:/docker-entrypoint-initdb.d/01-pta-schema.sql:ro
healthcheck:
test: ["CMD-SHELL", "mariadb-admin ping -h 127.0.0.1 -uroot -p\"$${MARIADB_ROOT_PASSWORD}\" --silent"]
interval: 10s
timeout: 5s
retries: 10
start_period: 20s
networks:
- pta
# Service jetable : applique les migrations SQL puis s'arrête. Le service php
# ne démarre qu'après sa sortie en succès, si bien qu'une migration en échec
# empêche l'application de tourner sur une base incomplète.
db-migrate:
image: mariadb:11.4
container_name: pta-db-migrate
restart: "no"
environment:
DB_HOST: db
DB_PORT: 3306
DB_NAME: ${DB_NAME:-pta}
# Les migrations créent tables et vues : elles passent par le compte
# d'administration, jamais par le compte applicatif.
DB_USER: root
DB_PASSWORD: ${DB_ROOT_PASSWORD:-pta}
TZ: ${TZ:-Europe/Paris}
volumes:
- ./database:/migrations:ro
- ./docker/db/apply-migrations.sh:/usr/local/bin/apply-migrations.sh:ro
entrypoint: ["/bin/sh", "/usr/local/bin/apply-migrations.sh"]
depends_on:
db:
condition: service_healthy
networks:
- pta
php:
build:
context: .
dockerfile: Dockerfile
target: php
container_name: pta-php
restart: unless-stopped
environment:
PTA_DB_HOST: db
PTA_DB_PORT: 3306
PTA_DB_NAME: ${DB_NAME:-pta}
PTA_DB_USER: ${DB_USER:-pta}
PTA_DB_PASS: ${DB_PASSWORD:-change_me}
# Aucun détail technique n'est renvoyé au navigateur tant que ce drapeau
# n'est pas explicitement passé à 1. Ne jamais l'activer en production.
PTA_DEBUG: ${PTA_DEBUG:-0}
TZ: ${TZ:-Europe/Paris}
depends_on:
db:
condition: service_healthy
db-migrate:
condition: service_completed_successfully
networks:
- pta
nginx:
build:
context: .
dockerfile: Dockerfile
target: nginx
container_name: pta-nginx
restart: unless-stopped
ports:
- "${APP_BIND:-0.0.0.0}:${APP_PORT:-8080}:80"
depends_on:
- php
networks:
- pta
phpmyadmin:
image: phpmyadmin:5.2.2
container_name: pta-phpmyadmin
restart: unless-stopped
environment:
PMA_HOST: db
PMA_PORT: 3306
# PMA_USER / PMA_PASSWORD sont volontairement absents : leur présence fait
# basculer phpMyAdmin en auth_type=config, c'est-à-dire une session déjà
# authentifiée pour quiconque atteint le port. Sans eux, phpMyAdmin exige
# un identifiant et un mot de passe MariaDB à chaque connexion.
UPLOAD_LIMIT: 64M
TZ: ${TZ:-Europe/Paris}
ports:
# phpMyAdmin n'écoute que sur la boucle locale. Pour y accéder à distance,
# passer par un tunnel SSH (voir README_DOCKER.md).
- "${PMA_BIND:-0.0.0.0}:${PMA_PORT:-8081}:80"
depends_on:
db:
condition: service_healthy
networks:
- pta
networks:
pta:
driver: bridge
volumes:
mariadb_data: