Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/raveriss/inception
Inception: Création d'une infrastructure complète en utilisant Docker. Le projet implique la virtualisation de différents services Docker (NGINX, WordPress, MariaDB) avec docker-compose pour une gestion efficace des conteneurs.
https://github.com/raveriss/inception
42 42cursus 42projects alpine container debian docker docker-compose dockerfile mariadb nginx virtual-machine virtualization wordpress
Last synced: 22 days ago
JSON representation
Inception: Création d'une infrastructure complète en utilisant Docker. Le projet implique la virtualisation de différents services Docker (NGINX, WordPress, MariaDB) avec docker-compose pour une gestion efficace des conteneurs.
- Host: GitHub
- URL: https://github.com/raveriss/inception
- Owner: raveriss
- Created: 2024-09-09T10:12:40.000Z (4 months ago)
- Default Branch: main
- Last Pushed: 2024-11-30T14:43:58.000Z (about 1 month ago)
- Last Synced: 2024-12-19T02:10:43.602Z (22 days ago)
- Topics: 42, 42cursus, 42projects, alpine, container, debian, docker, docker-compose, dockerfile, mariadb, nginx, virtual-machine, virtualization, wordpress
- Language: Makefile
- Homepage:
- Size: 43.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Inception - École 42 | Paris
###
## Description
Inception est un projet qui vise à approfondir les connaissances dans la virtualisation en utilisant Docker. L'objectif est de créer une mini-infrastructure de plusieurs services, tous conteneurisés et orchestrés à l'aide de `docker-compose`. Chaque service tournera dans son propre conteneur dédié en respectant les bonnes pratiques de configuration.
## Exercise 00: Infrastructure Docker
L'objectif principal de ce projet est de mettre en place une infrastructure complète comprenant plusieurs services Docker comme NGINX, WordPress, et MariaDB. Le projet inclut la création d'une machine virtuelle, l'écriture de Dockerfiles, et l'utilisation de volumes et de réseaux Docker.
### Structure du Projet
Le projet est organisé de la manière suivante :
- **File:** `Makefile`
- **Directory:** `srcs/`
- `docker-compose.yml`
- `.env`
- **Directory:** `requirements/`
- **Directory:** `mariadb/`
- `Dockerfile`
- `.dockerignore`
- `conf/`
- `tools/`
- **Directory:** `nginx/`
- `Dockerfile`
- `.dockerignore`
- `conf/`
- `tools/`
- **Directory:** `wordpress/`
- `Dockerfile`
- `.dockerignore`
- `tools/`
- **Directory:** `bonus/`
- (Dossier pour tout service supplémentaire dans les bonus)Le fichier `.env` contient des variables d'environnement pour la configuration de votre domaine et des services comme MariaDB et WordPress.
### Description des Fichiers
- `docker-compose.yml`: Contient la configuration des différents services et la mise en place des réseaux et des volumes Docker.
- `Makefile`: Automatiser la création et le déploiement des conteneurs via Docker Compose.
- `Dockerfiles/`: Dossier contenant les Dockerfiles pour chaque service (NGINX, WordPress, MariaDB).
- `Volumes/`: Dossier où les volumes sont montés pour stocker les données persistantes (base de données, fichiers de WordPress).### Compilation
Pour compiler et démarrer l'infrastructure, utilisez la commande suivante dans le terminal :
```bash
make
```Cette commande lance `docker-compose` et met en place tous les services.
### Exécution
Une fois la compilation terminée, vous pouvez accéder aux services via votre navigateur :Accédez à votre site WordPress sécurisé via HTTPS à l'adresse `https://login.42.fr`, où login est votre `login` utilisateur de l'École 42.
### Fonctionnalités
- **Conteneurisation des services** : NGINX, WordPress, et MariaDB tournent chacun dans leur propre conteneur.
- **Sécurisation** : Utilisation du protocole TLSv1.2 ou TLSv1.3 pour sécuriser les connexions via NGINX.
- **Volumes** : Les données sont persistantes grâce à l'utilisation de volumes Docker pour la base de données et les fichiers de WordPress.
- **Automatisation** : Utilisation d'un Makefile pour automatiser la configuration et le déploiement.
- **Variables d'environnement** : Configuration des mots de passe et autres informations sensibles via des variables d'environnement sécurisées dans un fichier `.env`.### Contributeurs
raveriss - Développeur principal### Remarques
Ce projet suit les bonnes pratiques de Docker, notamment l'utilisation de Dockerfiles personnalisés pour chaque service et la gestion des volumes pour garantir la persistance des données. Aucun mot de passe n'est stocké dans les Dockerfiles et toutes les informations sensibles sont gérées via des variables d'environnement.### Ressources Utilisées
- [Testeur inception](https://github.com/raveriss/42-inception-tester)
- [Documentation Docker](https://docs.docker.com)
- [Apprenez Docker sur OpenClassrooms](https://openclassrooms.com/fr/courses/2612166-apprenez-a-utiliser-docker)
- [Utilisation avancée de Docker Compose](https://docs.docker.com/compose/)