| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- version: '3.8'
- services:
- # Serveur Web Nginx
- web:
- image: nginx:latest
- container_name: nginx_server
- ports:
- - "8080:80"
- volumes:
- - ./html:/usr/share/nginx/html:ro
- depends_on:
- - app
- # Serveur Web Node.js
- node_app:
- image: node:latest
- container_name: node_server
- working_dir: /usr/src/app
- volumes:
- - ./node_app:/usr/src/app
- ports:
- - "3000:3000"
- command: bash -c "npm install && npm start"
- # Serveur PHP
- app:
- image: php:7.4-fpm
- container_name: php_server
- volumes:
- - ./html:/var/www/html
- depends_on:
- - db
- # Serveur MySQL
- db:
- image: mysql:5.7
- container_name: mysql_db
- environment:
- MYSQL_ROOT_PASSWORD: rootpassword
- MYSQL_DATABASE: mydb
- MYSQL_USER: user
- MYSQL_PASSWORD: userpassword
- ports:
- - "3306:3306"
- volumes:
- - db_data:/var/lib/mysql
- # Serveur Redis
- cache:
- image: redis:latest
- container_name: redis_cache
- ports:
- - "6379:6379"
- # Serveur de fichiers Samba
- file_server:
- image: dperson/samba
- container_name: samba_server
- environment:
- TZ: Europe/Paris
- USERNAME: user
- PASSWORD: password
- ports:
- - "139:139"
- - "445:445"
- volumes:
- - ./shared:/mount
- # Serveur Proxy Squid
- proxy:
- image: sameersbn/squid:latest
- container_name: squid_proxy
- ports:
- - "3128:3128"
- volumes:
- - ./squid:/etc/squid
- # Serveur Email Postfix
- mail:
- image: mwader/postfix-relay
- container_name: mail_server
- environment:
- RELAYHOST: "[smtp.gmail.com]:587"
- RELAYUSER: "your-email@gmail.com"
- RELAYPASS: "your-email-password"
- ports:
- - "587:587"
- # Serveur de métriques Prometheus
- prometheus:
- image: prom/prometheus:latest
- container_name: prometheus_server
- volumes:
- - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
- ports:
- - "9090:9090"
- # Serveur de monitoring Grafana
- grafana:
- image: grafana/grafana:latest
- container_name: grafana_server
- environment:
- - GF_SECURITY_ADMIN_USER=admin
- - GF_SECURITY_ADMIN_PASSWORD=admin
- ports:
- - "3001:3000"
- depends_on:
- - prometheus
- volumes:
- - grafana_data:/var/lib/grafana
- # Serveur de qualité de code SonarQube
- sonarqube:
- image: sonarqube:community
- container_name: sonarqube_server
- ports:
- - "9000:9000"
- environment:
- SONAR_ES_BOOTSTRAP_CHECKS_DISABLE: "true"
- volumes:
- - sonarqube_data:/opt/sonarqube/data
- - sonarqube_extensions:/opt/sonarqube/extensions
- - sonarqube_logs:/opt/sonarqube/logs
- # Serveur CI/CD Jenkins
- jenkins:
- image: jenkins/jenkins:lts
- container_name: jenkins_server
- user: root
- ports:
- - "8081:8080"
- - "50000:50000"
- volumes:
- - jenkins_home:/var/jenkins_home
- # Serveur Git auto-hébergé Gogs
- gogs:
- image: gogs/gogs:latest
- container_name: gogs_server
- ports:
- - "3002:3000"
- - "10022:22"
- volumes:
- - gogs_data:/data
- volumes:
- db_data:
- grafana_data:
- sonarqube_data:
- sonarqube_extensions:
- sonarqube_logs:
- jenkins_home:
- gogs_data:
|