Ajout documentation projets OpenClassrooms (P02-P13) avec support bilingue
- Add all project documentation pages in French and English - Include PDF viewers for presentations and documents (P10, P12) - Add collapsible sections for scripts and logs (P10) - Add static assets for all projects - Update sidebars with new projets-openclassrooms category - Add npm start:en script for testing English locale
This commit is contained in:
parent
40a8985942
commit
ed989ff004
86 changed files with 24243 additions and 1 deletions
148
docs/projets-openclassrooms/p04-architecture-ntiers.md
Normal file
148
docs/projets-openclassrooms/p04-architecture-ntiers.md
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
---
|
||||
sidebar_position: 4
|
||||
---
|
||||
|
||||
# Architecture n-tiers Docker
|
||||
|
||||
## Contexte
|
||||
|
||||
Déploiement d'une architecture n-tiers conteneurisée pour l'entreprise BeeSafe, comprenant un serveur web, une base de données et un serveur DNS.
|
||||
|
||||
## Objectifs
|
||||
|
||||
- Conteneuriser une application web LAMP
|
||||
- Configurer un serveur DNS avec Bind9
|
||||
- Mettre en place un reverse proxy
|
||||
- Documenter l'architecture technique
|
||||
|
||||
## Technologies utilisées
|
||||
|
||||
- **Docker / Docker Compose** : conteneurisation
|
||||
- **Apache/PHP** : serveur web
|
||||
- **MySQL** : base de données
|
||||
- **Bind9** : serveur DNS
|
||||
|
||||
## Architecture déployée
|
||||
|
||||
```
|
||||
+-------------+
|
||||
| Client |
|
||||
+------+------+
|
||||
|
|
||||
+------v------+
|
||||
| DNS Bind9 |
|
||||
+------+------+
|
||||
|
|
||||
+------v------+
|
||||
| Apache |
|
||||
| + PHP |
|
||||
+------+------+
|
||||
|
|
||||
+------v------+
|
||||
| MySQL |
|
||||
+-------------+
|
||||
```
|
||||
|
||||
## Livrables
|
||||
|
||||
<details>
|
||||
<summary>Schéma d'architecture (PDF)</summary>
|
||||
|
||||
<iframe src="/assets/projets-oc/p04/schema_archi_ntiers.pdf" width="100%" height="600px" style={{border: 'none'}}></iframe>
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Docker Compose</summary>
|
||||
|
||||
```yaml
|
||||
services:
|
||||
web:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
container_name: apache_php
|
||||
ports:
|
||||
- "80:80"
|
||||
volumes:
|
||||
- ./web:/var/www/html
|
||||
- ./apache/beesafe.conf:/etc/apache2/sites-available/beesafe.conf
|
||||
depends_on:
|
||||
- db
|
||||
- dns
|
||||
networks:
|
||||
- backend
|
||||
restart: unless-stopped
|
||||
|
||||
db:
|
||||
image: mysql:8.0
|
||||
container_name: mysql
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: rootclassroom
|
||||
MYSQL_DATABASE: beesafe_db
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
- ./sql:/docker-entrypoint-initdb.d
|
||||
networks:
|
||||
- backend
|
||||
restart: unless-stopped
|
||||
|
||||
dns:
|
||||
image: internetsystemsconsortium/bind9:9.18
|
||||
container_name: bind9
|
||||
ports:
|
||||
- "53:53/tcp"
|
||||
- "53:53/udp"
|
||||
volumes:
|
||||
- ./bind9/etc:/etc/bind
|
||||
- ./bind9/cache:/var/cache/bind
|
||||
- ./bind9/lib:/var/lib/bind
|
||||
- ./bind9/log:/var/log
|
||||
command: ["-g"]
|
||||
networks:
|
||||
- backend
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
backend:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>Dockerfile</summary>
|
||||
|
||||
```dockerfile
|
||||
FROM php:8.0-apache
|
||||
|
||||
# Mise à jour et installation des dépendances
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libzip-dev \
|
||||
unzip \
|
||||
&& docker-php-ext-install mysqli \
|
||||
&& docker-php-ext-enable mysqli
|
||||
|
||||
# Activer le site beesafe.conf et désactiver le site par défaut 000-default.conf
|
||||
RUN a2ensite beesafe.conf && \
|
||||
a2dissite 000-default.conf && \
|
||||
service apache2 reload
|
||||
|
||||
# Nettoyage des fichiers inutiles pour réduire la taille de l'image
|
||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
# Commande pour garder Apache en fonctionnement
|
||||
CMD ["apache2-foreground"]
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Compétences acquises
|
||||
|
||||
- Conteneurisation d'applications multi-tiers
|
||||
- Configuration de serveurs DNS
|
||||
- Orchestration avec Docker Compose
|
||||
- Architecture applicative découplée
|
||||
Loading…
Add table
Add a link
Reference in a new issue