Skip to content

yboktaeva/inception

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Inception

Description

The Inception project is part of the 42 School curriculum, focusing on DevOps practices. The goal is to build a multi-service application using Docker containers orchestrated with Docker Compose. The project introduces essential concepts of containerization, networking, and persistent storage.


Docker Setup

Version

The project uses Docker Compose version 3.9 for defining the multi-service architecture.

Networks

A custom Docker network named inception (driver: bridge) is configured to allow communication between the services.

Services

The project defines the following services in the docker-compose.yml file:

  1. Nginx

    • Acts as the web server.
    • Routes traffic to the WordPress service.
    • Ports: exposes port 443 for secure HTTPS communication.
    • Volumes: mounts the WordPress files to /var/www/wordpress.
  2. MariaDB

    • Provides the database backend for WordPress.
    • Volumes: stores database files in a persistent directory.
  3. WordPress

    • Hosts the WordPress application.
    • Relies on the MariaDB service for database operations.
    • Volumes: mounts WordPress files for persistence.

Volumes

The project uses Docker volumes for persistent data storage:

  • wordpress:
    • Maps to /home/$(USER)/data/wp on the host.
    • Stores WordPress application files.
  • mariadb:
    • Maps to /home/$(USER)/data/db on the host.
    • Stores MariaDB database files.

Makefile

The provided Makefile simplifies managing the Docker setup. Below are the targets:

Targets

all

Builds and launches all services:

make all

build

Builds the Docker images for all services:

make build

up

Starts the services in detached mode after ensuring volumes are created:

make up

down

Stops and removes all running containers:

make down

clean

Runs a custom script to remove temporary files:

make clean

prune

Performs a complete cleanup of Docker resources:

make prune

Key Features

  1. Docker Containers

    • Implements a containerized architecture for better modularity and scalability.
  2. Custom Docker Network

    • Ensures seamless communication between services.
  3. Persistent Storage

    • Prevents data loss with host-mounted Docker volumes.
  4. Automation with Makefile

    • Simplifies building, starting, and cleaning up the project.

Acknowledgments

This project is a part of the 42 School curriculum, designed to provide hands-on experience with Docker, container orchestration, and DevOps practices.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors