Files
pta/docker-compose.yml
PTA 66cc8c8ade Base de travail V7.8 reprise du répertoire de travail
Commit technique : reproduit à l'identique l'état non commité de la copie
de travail (sécurisation V7.8, CSP à nonce, Session, migration des droits)
afin que le travail d'ergonomie qui suit soit isolable.

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

94 lines
2.6 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
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
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:-127.0.0.1}:${PMA_PORT:-8081}:80"
depends_on:
db:
condition: service_healthy
networks:
- pta
networks:
pta:
driver: bridge
volumes:
mariadb_data: