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.
Each Docker image must have the same name as its corresponding service. Each service has to run in a dedicated container: You then have to set up:
- 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.
- Your containers have to restart in case of a crash.
Here is an example diagram of the expected result:
For this project, the bonus part is aimed to be simple. 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 (Yes, PHP is excluded!). 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. During the defense, you will have to justify your choice.
You can run:
-
make
in the root of the directory to build and start all container -
make ls
to list all the images and containers -
make status
to see the running containers -
make build
to build all images in docker-compose -
make up
to start all containers in docker-compose -
make logs
to see the logs of the containers -
make stop
to stop all containers in the docker-compose -
make start
to start all containers in the docker-compose -
make down
to remove all containers in the docker-compose -
make reload
to remove, build and run all containers in docker-compose -
make rm
NOTE This command will remove ALL CONTAINERS IN YOUR OPERATOR SYSTEM. -
make rvolumes
to delete all volumes folders from your system -
make volumes
to create folders of the volumes in your system.
- Install Docker Engine on Ubuntu
- Install Docker Compose on Ubuntu
- Compose file version 3 reference
- WordPress Deployment with NGINX, PHP-FPM and MariaDB using Docker Compose
- How To Configure Nginx to use TLS 1.2 / 1.3 only
- php-fpm Configuration
- Exporting/Backing up Database
- alpine os releases
- adminer download
- php built-in web server