Files
gestion-certificats2/docker-compose.yml
google-labs-jules[bot] 98e931e3f9 Fix: Corrige la configuration Docker et les permissions
Ce commit apporte les modifications suivantes pour résoudre les problèmes
de chargement des fichiers CSS et potentiellement de rendu des pages :

- docker-compose.yml:
    - Modifie le montage du volume pour le service nginx de
      `./app/public:/var/www/html:ro` à `./app:/var/www/html:ro`
      pour s'aligner avec la directive `root /var/www/html/public;`
      dans la configuration Nginx.
    - Met à jour la commande de démarrage du service php-fpm pour
      appliquer `chown -R www-data:www-data` et `chmod -R 775`
      à l'ensemble du répertoire `/var/www/html` afin d'assurer
      les bonnes permissions pour les fichiers de l'application.

- Supprime le fichier CSS dupliqué `app/public/dark-mode.css`.
  Le fichier correct `app/public/css/dark-mode.css` est conservé.

- Conserve une ligne de débogage temporaire dans `app/src/Views/shared/header.php`
  pour aider à diagnostiquer les problèmes de mode sombre.
2025-06-14 17:57:08 +00:00

70 lines
3.0 KiB
YAML

version: '3.8'
services:
nginx:
image: nginx:latest
container_name: cert-gestion-nginx
ports:
- "980:80"
- "9443:443" # Optionnel: Pour HTTPS si vous décidez d'ajouter un certificat à Nginx
volumes:
- ./nginx:/etc/nginx/conf.d:ro # Fichiers de configuration Nginx
- ./app:/var/www/html:ro # Contenu statique et point d'entrée de l'application
- ./tls:/opt/tls:rw # Accès en lecture aux certificats pour Nginx si besoin (par ex. pour OCSP)
- ./storage/nginx_logs:/var/log/nginx:rw # Volume pour les logs de Nginx
depends_on:
- php-fpm # Nginx dépend de PHP-FPM pour servir l'application
networks:
- cert-gestion-network
restart: unless-stopped # Nouvelle ligne: Redémarre Nginx si le service s'arrête de manière inattendue
php-fpm:
build:
context: ./php # Construit l'image à partir du dossier ./php
dockerfile: Dockerfile
container_name: cert-gestion-php-fpm
volumes:
- ./app:/var/www/html:rw # Code source de l'application PHP (lecture/écriture pour logs, sessions)
- ./scripts:/opt/scripts:rw # Scripts shell pour la gestion des certificats (lecture seule)
- ./tls:/opt/tls:rw # Dossier pour les certificats et clés (lecture/écriture pour création/révocation)
- ./storage/php_logs:/var/log/app:rw # Volume pour les logs de l'application PHP
environment:
# Variables d'environnement pour PHP (par exemple, pour la connexion DB)
# Il est recommandé d'utiliser un fichier .env avec un outil comme phpdotenv en production
DB_HOST: mysql
DB_NAME: cert_gestion
DB_USER: user
DB_PASSWORD: password_secret # À CHANGER POUR LA PRODUCTION
depends_on:
- mysql # PHP-FPM dépend de MySQL
networks:
- cert-gestion-network
restart: unless-stopped # Nouvelle ligne: Redémarre Nginx si le service s'arrête de manière inattendue
command: >
bash -c "chown -R www-data:www-data /var/www/html /var/log/app && chmod -R 775 /var/www/html /var/log/app && chmod +x /opt/scripts/*.sh && php-fpm"
mysql:
image: mysql:8.0
container_name: cert-gestion-mysql
environment:
MYSQL_ROOT_PASSWORD: root_password_secret # À CHANGER POUR LA PRODUCTION
MYSQL_DATABASE: cert_gestion
MYSQL_USER: user
MYSQL_PASSWORD: password_secret # À CHANGER POUR LA PRODUCTION
volumes:
- mysql_data:/var/lib/mysql # Volume persistant pour les données de la base de données
- ./mysql/init.sql:/docker-entrypoint-initdb.d/init.sql:ro # Script exécuté au premier démarrage pour créer la DB et les tables
networks:
- cert-gestion-network
restart: unless-stopped # Nouvelle ligne: Redémarre Nginx si le service s'arrête de manière inattendue
volumes:
mysql_data: # Définition du volume nommé pour MySQL
# Ces volumes sont définis implicitement par les chemins de montage bind mounts:
# ./storage/nginx_logs
# ./storage/php_logs
networks:
cert-gestion-network:
driver: bridge # Réseau bridge pour la communication interne entre les conteneurs