The "Inception" project delves into system administration with Docker, focusing on setting up a comprehensive infrastructure within a virtual machine. It mandates the creation of distinct Docker containers running various services like NGINX, WordPress with php-fpm, and MariaDB, among others. Emphasizing best practices, it prohibits certain approaches, mandates use of environment variables, and enforces security measures like domain configuration and avoiding credential exposure. Additionally, it includes a bonus section allowing students to implement extra services like Redis cache, FTP server, or additional utilities for bonus credit, contingent upon successful completion of the mandatory tasks.
To run this project, you will need to add the following environment variables to your .env file
URL
MYSQL_USER
MYSQL_PASSWORD
MYSQL_ROOT_PASSWORD
WORDPRESS_ROOT_LOGIN
WORDPRESS_ROOT_EMAIL
WORDPRESS_NAME
WORDPRESS_USER_EMAIL
FTP_USER
FTP_PASSWORD
To deploy this project run
make
Also you need to modify your 'hosts' file, so you can use the domain name instead of the IP addr
sudo nano /etc/hosts
This project consists in having you set up a small infrastructure composed of different services under specific rules with docker compose.
The Docker images of the project are built with Dockerfile
- A Docker container that contains NGINX with TLSv1.3
- A Docker container that contains WordPress + php-fpm
- A Docker container that contains MariaDB
- A volume that contains the WordPress database
- A second volume that contains the WordPress website files
- A docker-network that establishes the connection between the containers
- Redis cache for the WordPress website in order to properly manage the cache
- FTP server container pointing to the volume of the WordPress website
- A simple static website.
- Adminer
- Cadvisor