Inception is a project that leverages Docker to build a scalable, modular, and production-like development environment using containers. The project automates the setup of multiple services, orchestrated via Docker Compose, which are configured using Shell scripts, Dockerfiles, and Makefiles.
- Containerized Architecture: Isolates each service in its own container for easier management and scalability.
- Automated Deployment: Uses Makefiles and shell scripts to streamline building, running, and managing containers.
- Multi-Service Stack: Integrates various services (such as web server, database, etc.) defined in Docker Compose.
- Customizability: Easily configurable environment variables and service definitions.
- Beginner Friendly: Clear structure and scripts to help users understand Docker-based development.
.
├── docker-compose.yml
├── srcs/
│ ├── requirements/
│ │ ├── nginx/
│ │ ├── wordpress/
│ │ └── ...
├── Makefile
├── scripts/
│ └── ...
└── README.md
docker-compose.yml: Main Docker Compose configuration.srcs/requirements/: Service-specific Dockerfiles and configuration.Makefile: Useful commands to build, start, stop, and clean the environment.scripts/: Automation scripts (e.g., for setup and configuration).
- Docker (v20.10+)
- Docker Compose (v1.29+)
- GNU Make (optional, for using Makefile commands)
-
Clone the repository:
git clone https://github.com/N1ghtm4reee/inception.git cd inception -
Copy and edit the environment file (if required):
cp .env.example .env # Edit .env to customize environment variables -
Build and start the services:
- Using Makefile:
make up
- Or directly with Docker Compose:
docker-compose up --build -d
- Using Makefile:
-
Access Services:
- Web server: http://localhost/
- Other services as defined in
docker-compose.yml
-
Stop and clean up:
make down # or docker-compose down
- Edit service configurations under
srcs/requirements/. - Add custom scripts in
scripts/for automation. - Use
Makefiletargets for common tasks:make up- Build and run all containers.make down- Stop and remove all containers.make clean- Remove all generated data and images.