Skip to content

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

License

Notifications You must be signed in to change notification settings

Inushin/dockerOdooSymfonySSL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐳 Docker + PHP 7.4 + PostgreSQL 13 + Odoo 13 + Nginx + Certbot(HTTPS) + Symfony 5 Boilerplate 🐳

symfonyOdoo

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 Odoo with NGINX, PostgreSQL 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.
  • db which is the PostgreSQL database container with a PostgreSQL 13 image.
  • web the Odoo container with the 13 Odoo version.
  • certbot generates the SSL certificate for your personal domain.

🚨 Warning 🚨

We are using Symfony for the webservice, and Symfony works better with IDs (if we talk about using Doctrine ORM, more), so we will need to adjust the tables of our database in order to add an ID automatically. This is an installation, so that info it is not given here.

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 initOdooSSL with your ODOO domain and an email.

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

  6. Edit data/nginx/web.conf with your ODOO domain.

  7. Run ./initOdooSSL.

  8. Edit initSymfonySSL with your Symfony domain and an email.

  9. Edit data/nginx/web.conf with your SYMFONY domain.

  10. Run ./initSymfonySSL.

  11. Edit data/nginx/web.conf and uncomment the HTTPS config.

  12. Generate your Symfony proyect going to the php container docker-compose exec php bash. Then, go to symfony folder, /var/www/certbot/phpDir/symfony, and run composer create-project symfony/skeleton NAME_OF_THE_PROJECT. If you need to install Composer click HERE or go to the end of this .md ^^

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

  14. Run docker-compose down

  15. Run docker-compose up -d

  16. The 5 containers are deployed:

Creating docker_db_1      ... done
Creating docker_web_1      ... done
Creating docker_php_1     ... done
Creating docker_nginx_1   ... done
Creating docker-certbot-1 ... done

🚨 If you have the folling error Connection matched pg_hba.conf line 99: "host all all all md5", go to /var/lib/docker/volumes/dockerOdooSymfonySSL/_data/pg_hba.conf and edit last line to "host all all all trust"

  1. Remember to edit the env file at the root of the Symfony's project. db is the name of the container that has your database:
DATABASE_URL=postgresql://postgresql_db_user_name:postgresql_db_user_pass@db:5432/db_odoo_name?serverVersion=13&charset=utf8

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

  • 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, Docker-compose and Composer 🛠

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

  • Composer installation
  1. Download and install Composer: curl -sS https://getcomposer.org/installer | php

  2. Moves the config file to the composer dir: mv composer.phar /usr/local/bin/composer

  3. Makes an direct access of composer.phar file: ln -s /usr/local/bin/composer /usr/bin/composer

⭐ Feedback and bugs 🐞

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

Version control 📝

  • 1.0 - Creation of the rep with the config finished - 27/01/2022
  • 1.1 - Added pdo pdo_pgsql pgsql to the PHP Dockerfile - 28/01/2022
  • 1.2 - Updated useful Docker commands - 10/02/2022
  • 2.1 - Added the OdooDB initialitation command to the docker-compose.yml - 10/04/2022
  • v2.2 - Current - Remove unneeded files and folders - 03/12/2022

About

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

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published