Inushin / dockerNodeSSL

This is a complete stack for running a projects with Node, MongoDB, NGINX and PHP into Docker containers using docker-compose tool and with Certbot for the HTTPS certificate.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🐳 Docker + PHP 7.4 + MongoDB 4.4 + Nginx 15 + Certbot(HTTPS) + Node 13 🐳

NODE MONGO

If you find this useful, remember about giving a start ⭐ to this repo or share it πŸ”

Created from https://github.com/Inushin/dockerSymfonySSL

Description πŸ“‹

docker_facebook_share

This is a complete stack for running projects with Node, MongoDB, NGINX and PHP into Docker containers using docker-compose tool and with Certbot for the HTTPS certificate.

It is composed by 5 containers:

  • nginx, acting as the webserver.
  • php, the PHP-FPM container with the 7.4 PHPversion.
  • mongodb which is the MongoDB database container with a MongoDB 4.4 image.
  • node the Node container with the 13 Node version.
  • certbot generates the SSL certificate for your personal domain.

Installation ⌨

Docker Installation Illustration

  1. You need Docker and Docker-compose where you are going to launch this so, if you do not have it... click HERE or go to the end of this .md ^^

  2. Clone this rep.

  3. Check that the dir. data/certbot/www/.well-known exist. If it is not, create it πŸ˜€.

  4. Edit init with your domain and an email.

  5. Edit the docker-compose.yml with your DB information.

  6. Edit data/nginx/node/index.js with your domain.

  7. Run ./init.

  8. Edit data/nginx/web.conf with your domain and your project dir.

  9. Run docker-compose down

  10. Run docker-compose up -d

  11. The 4 containers are deployed:

Creating docker_mongo_1   ... done
Creating docker_php_1     ... done
Creating docker_nginx_1   ... done
Creating docker_node_1   ... done
Creating docker-certbot-1 ... done

Docker's useful commands πŸ“‘

Docker Commands Illustration

  • Run Docker-compose: docker-compose up -d / docker-compose up

  • Check Docker-compose's volumens status: docker-compose ps -a / docker-compose ps

  • Check Docker's images: docker images -a

  • Remove Docker's images: docker rmi -f imageID1 imageID2 ... (-f = force)

  • Enter to a Docker's volumen: docker-compose exec VolumenID sh / docker-compose exec VolumenID bash

  • Copy a file to the docker we want to: docker cp file docker_id:/dir

  • See all the configuration of the docker-compose.yml with the paths completed: docker-compose config

  • See all the information of a volumen (interesting of IPs): docker inspect VOLUMEN_ID

  • Remove all dangling (not tagged or associated with a container) containers, volumes, networks and images: docker system prune

  • Remove all unused containers and images with at least one container associated to them: docker system prune -a

  • Shows all unused local images: docker images ls -f dangling=true

  • Shows all unused local volumes: docker volume ls -f dangling=true

  • Remove all local volumes not used by at least one container: docker volume prune

Installing Docker and Docker-compose πŸ› 

Docker-composer

Adjust the installation to your OS. Here you have the one for EC2(AWS) with CentOS

  • Docker installation
  1. Download and install Docker: yum install docker

  2. Gives permisions so you can run it everywhere: usermod -a -G docker ec2-user

  3. Starts Docker's service: service docker start

  4. Starts Docker's service each time you run the SO: chkconfig docker on

  • Docker-compose installation
  1. Download and install Docker-compose: curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

  2. Make it executable from anywhere: chmod +x /usr/local/bin/docker-compose

  3. Makes an direct access for docker-compose: ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

  4. Check the version and the installation: docker-compose --version

⭐ Feedback and bugs 🐞

If you find any bug or just want to give your feedback (remember the ⭐ ^^), Feel free to do it. I am, as you, constantly learning and things change so quickly that... no one knows ^^

Version control πŸ“

  • 0.0.0 - Creation of the rep with the config finished - 26/01/2022
  • 0.0.1 - Updated useful Docker commands - 10/02/2022

About

This is a complete stack for running a projects with Node, MongoDB, NGINX and PHP into Docker containers using docker-compose tool and with Certbot for the HTTPS certificate.

License:GNU General Public License v3.0


Languages

Language:Shell 72.5%Language:Dockerfile 18.7%Language:JavaScript 7.7%Language:PHP 1.1%