If you find this useful, remember about giving a start ⭐ to this repo or share it 🔁
Created from https://github.com/Inushin/dockerSymfonySSL
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.
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.
-
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
^^ -
Clone this rep.
-
Check that the dir.
data/certbot/www/.well-known
exist. If it is not, create it 😀. -
Edit
initOdooSSL
with your ODOO domain and an email. -
Edit the
docker-compose.yml
with your DB information. -
Edit
data/nginx/web.conf
with your ODOO domain. -
Run
./initOdooSSL
. -
Edit
initSymfonySSL
with your Symfony domain and an email. -
Edit
data/nginx/web.conf
with your SYMFONY domain. -
Run
./initSymfonySSL
. -
Edit
data/nginx/web.conf
and uncomment the HTTPS config. -
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 runcomposer create-project symfony/skeleton NAME_OF_THE_PROJECT
. If you need to install Composer click HERE or go to the end of this.md
^^ -
Edit
data/nginx/web.conf
with your domain and your project dir. -
Run
docker-compose down
-
Run
docker-compose up -d
-
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"
- 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
-
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
Adjust the installation to your OS. Here you have the one for EC2(AWS) with CentOS
- Docker installation
-
Download and install Docker:
yum install docker
-
Gives permisions so you can run it everywhere:
usermod -a -G docker ec2-user
-
Starts Docker's service:
service docker start
-
Starts Docker's service each time you run the SO:
chkconfig docker on
- Docker-compose installation
-
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
-
Make it executable from anywhere:
chmod +x /usr/local/bin/docker-compose
-
Makes an direct access for docker-compose:
ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
-
Check the version and the installation:
docker-compose --version
- Composer installation
-
Download and install Composer:
curl -sS https://getcomposer.org/installer | php
-
Moves the config file to the composer dir:
mv composer.phar /usr/local/bin/composer
-
Makes an direct access of
composer.phar
file:ln -s /usr/local/bin/composer /usr/bin/composer
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 ^^
- 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