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} 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: ${DB_USER:-pta} PMA_PASSWORD: ${DB_PASSWORD:-change_me} UPLOAD_LIMIT: 64M TZ: ${TZ:-Europe/Paris} ports: # Par défaut phpMyAdmin n'est accessible que depuis la machine hôte. - "${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: