This project aims to broaden your knowledge of system administration by using Docker. You will virtualize several Docker images, creating them in your new personal virtual machine. To do so, you'll need to understand about virtualization, containers, network and so on.
For the mandatory part, we should:
- Choose the build images between Alpine or Debian;
- Create Dockerfiles for each service run (they should all be in different containers);
- The Dockerfiles should be caled from a docker-compose.yml file;
- Set up a Docker container that contains NGINX with TLSv1.2 or TLSv1.3 only;
- Set-up a Docker container that contains WordPress + php-fpm (it must be installed and configured) only without nginx;
- Set-up a Docker container that contains MariaDB only without nginx;
- Set up a volume that contains a WordPress database;
- Set up a second volume that contains all the WordPress website files;
- Set up a docker-network that establishes the connection between the containers;
- Set up two users, one of them being the administrator;
- Configure a domain name so it points to your local IP Address. The domain must be login.42.fr, where login is my username, cado-car.
For the bonus part we should:
- Set up redis cache for the WordPress website in order to properly manage the cache;
- Set up a FTP server container pointing to the volume of the WordPress website;
- Create a simple static website in the language of our choice except PHP (Yes, PHP is excluded!). For example, a showcase site or a site for presenting your resume.
- Set up Adminer;
- Set up a service of our choice that we think is useful.
As I've done in the born2beroot
project, Inception also calls for a complete implementation guide, full of twists and turns and a whole lot of concept explanaitions.
As per usual, do not trust anything I say here. These guides are more for my own benefit then yours. However, I'll be happy if it happens to unstuck at least one lost soul in its lifetime.
To make things easier during evaluation (or simply to whoever may want to clone and test my project), I've also written an evaluation guide. It's a simple step-by-step guide to test the project and check if everything is working as expected.