Skip to content

Latest commit

 

History

History
63 lines (52 loc) · 3.54 KB

README.md

File metadata and controls

63 lines (52 loc) · 3.54 KB

42cursus_inception

This project aims to broaden your knowledge of System Administration by using Docker.

This project consists in having you set up a small infrastructure composed of different services under specific rules. The whole project has to be done in a virtual machine. You have to use docker compose. You can see the subject HERE.

Docker Bash Makefile

Rules to follow:
  • Each Docker image must have the same name as its corresponding service.
  • Each service has to run in a dedicated container.
  • For performance matters, the containers must be built either from the penultimate stable version of Alpine or Debian.
  • You also have to write your own Dockerfiles, one per service. The Dockerfiles must be called in your docker-compose.yml by your Makefile.
  • It means you have to build yourself the Docker images of your project. It is then forbidden to pull ready-made Docker images, as well as using services such as DockerHub (Alpine/Debian being excluded from this rule).
Diagram of the expected result for mandatory part:
    diagram of expected result
Expected directory structure:
    Expected directory structure

Mandatory part

List of services and volumes to set up for the mandatory part:

  • A Docker container that contains NGINX with TLSv1.2 or TLSv1.3 only.
  • A Docker container that contains WordPress + php-fpm (it must be installed and configured) only without nginx.
  • A Docker container that contains MariaDB only without nginx.
  • A volume that contains your WordPress database.
  • A second volume that contains your WordPress website files.
  • A docker-network that establishes the connection between your containers.

Bonus Part

A Dockerfile must be written for each extra service. Thus, each one of them will run inside its own container and will have, if necessary, its dedicated volume.

Bonus list:

  • Set up redis cache for your WordPress website in order to properly manage the cache.
  • Set up a FTP server container pointing to the volume of your WordPress website.
  • Create a simple static website in the language of your choice except PHP. For example, a showcase site or a site for presenting your resume.
  • Set up Adminer.
  • Set up a service of your choice that you think is useful. I am using Grafana.

Disclaimer

At 42School, almost every project must be written in accordance to the Norm, the school's coding standard. As a result, the implementation of certain parts may appear strange and for sure had room for improvement.