Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/izenynn/inception

42 cursus: docker and docker-compose project, see README.md for more info.
https://github.com/izenynn/inception

42 42born2code adminer alpine alpine-image alpine-linux docker docker-compose dockerfiles ftp ftp-server linux macos mariadb nginx phpmyadmin tls wordpress

Last synced: 14 days ago
JSON representation

42 cursus: docker and docker-compose project, see README.md for more info.

Awesome Lists containing this project

README

        

# inception

## Info

42 cursus: docker project.

- Status: finished
- Result: 125%
- Observations: (null)

## How to run

- run `make` or `make load` to start the docker-compose containers.
- run `make stop` to stop the containers.
- run `make prune` to stop the containers and/or delete the volumes.

NOTE: to change the docker-compose volumes location, you will need to change it in the `Makefile` and on the `srcs/docker-compose.yml` file.

P.S.: you can change variables such as the Domain, users and passwords on the `srcs/.env` file.

## About this project

For this project we need to setup a simple docker-compose network with the following containers:

- NGINX with TLSv1.2 or TLSv1.3.
- Wordpress + php-fpm (installed and configured).
- MariaDB.

With the following volumes:

- A volume that contains Wordpress database.
- A volume that contains Wordpress website files.

Each docker container must have his own `Dockerfile` and, of course, have to restart in case of crash

Here is an example diagram of the expected result:

![diagram](https://github.com/izenynn/inception/blob/main/diagram.png)
*NOTE: I also open the port 80, to recive HTTP connections, but I redirect those to the HTTPS protocol, that's how it should be, and how it is in most websites. Just delete the line of the docker-compose.yml if you don't want the port 80 open.*

I wanted to learn more about Docker so I also do the bonus part of the project, that part requires
us to setup 5 more containers:

- redis cache, for wordpress.
- FTP server pointing to the volume of the wordpress site.
- A static website (Some simple .html, .css and .js files is the web root, so wordpress is now in `https://domain.com/wordpress`).
- Adminer (a simple tool to manage mysql).
- A service of my choice, I choose `bind` (a DNS service), because we need to setup the ip resolve manually in `/etc/hosts` to access the web via the domain, so a DNS was fine for that purpouse.
- I also add PhpMyAdmin because... why not? Simple to install and way better than adminer.

In addition to the diagram above, I also open the ports 21, 21100-21110 for the FTP server.

Conclusion: now I like Docker and I enjoyed this a lot.

*NOTE: the bind container (DNS container) is commented on the docker-compose.yml file because it's not really important, uncomment it if you want it.*

##
[![forthebadge](https://forthebadge.com/images/badges/built-with-science.svg)](https://forthebadge.com)
[![forthebadge](https://forthebadge.com/images/badges/it-works-why.svg)](https://forthebadge.com)