mirror of
https://github.com/tips-of-mine/gestion-certificats2.git
synced 2025-06-28 09:18:42 +02:00
Add files via upload
This commit is contained in:
69
docker-compose.yml
Normal file
69
docker-compose.yml
Normal file
@ -0,0 +1,69 @@
|
||||
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/public:/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/log/app /var/www/html/storage && chmod -R 775 /var/log/app /var/www/html/storage && 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
|
Reference in New Issue
Block a user